[Gnucash-changes] r13352 - gnucash/trunk - Fix "default limit"
QOF eventing stuff; thanks Andi.
Derek Atkins
warlord at MIT.EDU
Sun Feb 26 11:31:26 EST 2006
Neil Williams <linux at codehelp.co.uk> writes:
>> They should always be specified as based off some constant identifier,
>> rather than a particular value. I'm not sure what you mean.
>
> Why? This probably sounds obvious to you but if new identifiers are expected
> to be based on QOF_DEFAULT_LIMIT + n, then I need to ensure this assumption
> is in the API docs because it certainly would not be obvious to me. I expect
> it's just something you've covered elsewhere that I haven't anticipated but
> I'd like to be sure. (Blame it on me being self-taught.)
Events should always be a power of 2. This way bitmasking events
works quickly and efficiently. It does, however, limit the number
of events you can have.
>> > I thought nobody wanted to iterate over event identifiers?
>>
>> I have no idea how that relates to this...?
>
> I thought you were using the << operator to create some way of iterating
> through the list of available event identifiers somewhere but couldn't see
> why. Derek's pointer to bitmasking cleared that up.
No, << operator is just a bit-shift operation. The construct:
1 << x
Is a way to make a set of bitmasks.
One suggestion I had was to do something like:
#define QOF_MAKE_EVENT(x) (1<<x)
Then you can do:
#define QOF_EVENT_A QOF_MAKE_EVENT(0)
#define QOF_EVENT_B QOF_MAKE_EVENT(1)
...
and then in the API code:
#define APP_EVENT_A QOF_MAKE_EVENT(QOF_EVENT_BASE+0)
#define APP_EVENT_B QOF_MAKE_EVENT(QOF_EVENT_BASE+1)
...
-derek
--
Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
Member, MIT Student Information Processing Board (SIPB)
URL: http://web.mit.edu/warlord/ PP-ASEL-IA N1NWH
warlord at MIT.EDU PGP key available
More information about the gnucash-devel
mailing list