Without look at the details of everything, I think I understand (and may
agree) with what Dimitry is saying.

getOffset / getNullOffset are very util to get offsets described by the
engine.

But when the user is passing them to the engine, it's a duplicated
information that should be in sync with the offsets calculated
internally, and currently is not even validated.

A possible solution may be to separate offset calculation from
IMessageMetadata.

Something like:

IMessageMetadata* mm = ...

unsigned offsets[5], nullOffsets[5];

IUtil* util = dispatcher->getUtil();
util->getOffsets(mm, offsets, nullOffsets, 5);    // walk message by
types/lengths and calculate

That is, decouple offset calculation (to get them when engine describe a
message) or to let the engine calculate them internally.

Again, I'm not looking in details, for example, message macros, external
routines and every thing.


Adriano


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to