[omniORB] Need to save Any to void* - serialise it?

Michal Grzemowski ptica@ernie.icslab.agh.edu.pl
Tue, 20 Apr 1999 16:58:19 +0200


Hello, 

While working on a distributed system being a major part of my master
thesis I have come upon a problem, which was impossible for me to get
through.

I need to save an Any object to disk (I need it to create a log of
operations) . To do that I need to convert an Any to a sequence of bytes
(void * ???). 

I have read the declaration of the Any class. There are member functions
like:

    // omniORB2 data-only marshalling functions
    void NP_marshalDataOnly(NetBufferedStream& s) const;
    void NP_unmarshalDataOnly(NetBufferedStream& s);

    void NP_marshalDataOnly(MemBufferedStream& s) const;
    void NP_unmarshalDataOnly(MemBufferedStream& s);

    size_t NP_alignedDataOnlySize(size_t initialoffset) const;

    // omniORB2 internal stub support routines
    void PR_packFrom(TypeCode_ptr newtc, void* tcdesc);
    Boolean PR_unpackTo(TypeCode_ptr tc, void* tcdesc) const;

which (looking at their names) might do that, but I don't know what they
do and how they work. 

Can anyone provide me with a description of those functions? If so, I
would probably need a description of Mem(Net)BufferedStream, which, as
far as I know is also an internal OmniOrb class.

If it wouldn't work, maybe there would be a possibility of using the
parser which comes with the Any class?

Please help, this system isn't going to operate without that.

Looking forward to hearing from you soon,

Michal Grzemowski

P.S. To the creators of OmniOrb:

You are doing a GREAT JOB! Your software is the most bug-free ORB
implementation I came in touch so far. I have been working with Orbix
(featuring everything but the holy spirit itself ;), but it had one
major problem - DIDN'T WORK. And sending bug reports to Iona feels like
talking to a wall. In comparison to them your software is GREAT!!! If it
doesnt support something, you honestly say that and all the features I
have been working with did work - KEEP ON!!!