[omniORB] Sequence allocation of inner objects

Thierry Descombes descombes at lpsc.in2p3.fr
Sat Jun 3 08:10:14 BST 2017


Hi,

Just a basic question about objects' sequence and memory management.

We have developed a software for embedded data acquisition. We have
little resources. We use omniORB to send data containing a CORBA
sequence of AdcEventData objects :

typedef sequence <AdcEventData> SeqAdcEventData

The AdcEventData object itself contains sequences and a big structure of
informations. To process / sort this information, we need to break this
SeqAdcEventData to extract all of the AdcEventData.

Currently, we are calling a function to create a new copy of the
AdcEventData:

addAdc(new AdcEventData ((* s) [i])); // for each elem of the sequence

...

And then, we delete the sequence (that frees all inner AdcEventData
objects)... but it consumes lot of unnecessarily resources on our small
embedded CPU.

Is there a good solution for not having to re-instantiate and copy the
AdcEventData ? Could we just copy pointer's (AdcEventData*) values, and
then fix the sequence length to 0 before calling delete on it ?

Thanks a  lot. Regards

Thierry





More information about the omniORB-list mailing list