[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ns] variable length packet header
You can just put in a pointer in the header to a dynamically allocated
structure.
-ratul
On Tue, 31 Oct 2000, Jan Cerlot wrote:
> Hi,
>
> I've created a new header to acknowledge received messages at one node. This
> node sends acknowledge packets every x ms. The problem is that, in this period
> of time, this node can receive 1 but also ... 1000 messages to acknowledge.
> Therefore I would like not to have a fixed array with the length 1000 that would
> be often unused but a dynamic array whose length would grow with the number of
> messages to acknowldege.
>
> So now, I have something like that :
>
> in <rack.h> :
>
> struct hdr_rack {
>
> int sess_id_[1000];
>
> static int offset_;
> inline static int& offset() { return offset_; }
> inline static hdr_rack* access(Packet* p) {
> return (hdr_rack*) p->access(offset_);
> }
>
> int& sess_id(int i) {return sess_id_[i];}
> };
>
> and in <rack.cc> :
>
> int hdr_rack::offset_;
>
> static class RackHeaderClass : public PacketHeaderClass {
> public:
> RackHeaderClass() : PacketHeaderClass("PacketHeader/Rack",
> sizeof(hdr_rack)) {
> bind_offset(&hdr_rack::offset_);
> }
> void export_offsets() {
> field_offset("sess_id_", OFFSET(hdr_rack, sess_id_));
> }
> } class_rackhdr;
>
> What do I need to change to have this sess_id_ array dynamic ??
>
> Thanks a lot for your answers
>
> Jan.
>
>