diff options
author | Christian Pointner <equinox@anytun.org> | 2007-06-18 18:50:41 +0000 |
---|---|---|
committer | Christian Pointner <equinox@anytun.org> | 2007-06-18 18:50:41 +0000 |
commit | 2a49fd31380e3b4fb041ee919eb429f074008924 (patch) | |
tree | f477e2c102d597967d5ea0be4960f6d4f532758d /package.h | |
parent | bugfix @buffer resize (diff) |
added header functions to package
Diffstat (limited to 'package.h')
-rw-r--r-- | package.h | 30 |
1 files changed, 21 insertions, 9 deletions
@@ -37,29 +37,41 @@ class Package : public Buffer { public: - Package() {} - Package(const Buffer &src) {} + Package(); + Package(u_int32_t length); + Package(const Buffer &src); bool hasHeader() const; Package& withHeader(bool b); seq_nr_t getSeqNr() const; sender_id_t getSenderId() const; - Package& setHeader(seq_nr_t seq_nr, sender_id_t sender_id); + Package& addHeader(seq_nr_t seq_nr, sender_id_t sender_id); + Package& removeHeader(); + Package& setSeqNr(seq_nr_t seq_nr); + Package& setSenderId(sender_id_t sender_id); + bool hasPayloadType() const; Package& withPayloadType(bool b); payload_type_t getPayloadType() const; - Package& setPayloadType(payload_type_t payload_type); - + Package& addPayloadType(payload_type_t payload_type); + Package& removePayloadType(); + bool hasAuthTag() const; Package& withAuthTag(bool b); auth_tag_t getAuthTag() const; - Package& setAuthTag(auth_tag_t auth_tag); + Package& addAuthTag(auth_tag_t auth_tag); + Package& removeAuthTag(); private: - bool has_header_; - bool has_payload_type_; - bool has_auth_tag_; + struct HeaderStruct + { + seq_nr_t seq_nr; + sender_id_t sender_id; + }__attribute__((__packed__)); + struct HeaderStruct* header_; + payload_type_t* payload_type_; + auth_tag_t* auth_tag_; }; #endif |