|
INET Framework for OMNeT++/OMNEST
|
This class represents data using an OMNeT++ cPacket instance. More...
#include <cPacketChunk.h>
Public Member Functions | |
Constructors, destructors and duplication related functions | |
| cPacketChunk (cPacket *packet=nullptr) | |
| cPacketChunk (const cPacketChunk &other) | |
| ~cPacketChunk () | |
| virtual cPacketChunk * | dup () const override |
| virtual const Ptr< Chunk > | dupShared () const override |
| Returns a mutable copy of this chunk in a shared pointer. More... | |
| virtual void | parsimPack (cCommBuffer *buffer) const override |
| virtual void | parsimUnpack (cCommBuffer *buffer) override |
Field accessor functions | |
| virtual cPacket * | getPacket () const |
Overridden chunk functions | |
| virtual ChunkType | getChunkType () const override |
| Returns the type of this chunk as an enum member. More... | |
| virtual b | getChunkLength () const override |
| Returns the length of data represented by this chunk. More... | |
| virtual bool | containsSameData (const Chunk &other) const override |
| Returns true if the two chunks represent the same binary data. More... | |
| virtual std::ostream & | printFieldsToStream (std::ostream &stream, int level, int evFlags=0) const override |
| Prints an optinally formatted human readable string representation of the feilds of this chunk to the given stream. More... | |
Public Member Functions inherited from inet::Chunk | |
| Chunk () | |
| Chunk (const Chunk &other) | |
| virtual void | forEachChild (cVisitor *v) override |
| virtual bool | isMutable () const |
| virtual bool | isImmutable () const |
| virtual void | markImmutable () |
| void | markMutableIfExclusivelyOwned () |
| virtual bool | isComplete () const |
| virtual bool | isIncomplete () const |
| virtual void | markIncomplete () |
| virtual bool | isCorrect () const |
| virtual bool | isIncorrect () const |
| virtual void | markIncorrect () |
| virtual bool | isProperlyRepresented () const |
| virtual bool | isImproperlyRepresented () const |
| virtual void | markImproperlyRepresented () |
| virtual void | moveIterator (Iterator &iterator, b length) const |
| virtual void | seekIterator (Iterator &iterator, b position) const |
| virtual bool | canInsertAtFront (const Ptr< const Chunk > &chunk) const |
| Returns true if this chunk is capable of representing the result. More... | |
| virtual bool | canInsertAtBack (const Ptr< const Chunk > &chunk) const |
| Returns true if this chunk is capable of representing the result. More... | |
| virtual bool | canInsertAt (const Ptr< const Chunk > &chunk, b offset) const |
| Returns true if this chunk is capable of representing the result. More... | |
| void | insertAtFront (const Ptr< const Chunk > &chunk) |
| Inserts the provided chunk at the beginning of this chunk. More... | |
| void | insertAtBack (const Ptr< const Chunk > &chunk) |
| Inserts the provided chunk at the end of this chunk. More... | |
| void | insertAt (const Ptr< const Chunk > &chunk, b offset) |
| Inserts the provided chunk into this chunk. More... | |
| virtual bool | canRemoveAtFront (b length) const |
| Returns true if this chunk is capable of representing the result. More... | |
| virtual bool | canRemoveAtBack (b length) const |
| Returns true if this chunk is capable of representing the result. More... | |
| virtual bool | canRemoveAt (b offset, b length) const |
| Returns true if this chunk is capable of representing the result. More... | |
| void | removeAtFront (b length) |
| Removes the requested part from the beginning of this chunk. More... | |
| void | removeAtBack (b length) |
| Removes the requested part from the end of this chunk. More... | |
| void | removeAt (b offset, b length) |
| Removes the requested part from this chunk. More... | |
| int | getChunkId () const |
| Returns the sequentially assigned id. More... | |
| virtual bool | isEmpty () const |
| Returns true if this chunk contains no data. More... | |
| const Ptr< Chunk > | simplify () const |
| Returns the simplified representation of this chunk eliminating all potential redundancies. More... | |
| const Ptr< Chunk > | peek (const Iterator &iterator, b length=unspecifiedLength, int flags=0) const |
| Returns the designated part of the data represented by this chunk in its default representation. More... | |
| template<typename T > | |
| bool | has (const Iterator &iterator, b length=unspecifiedLength) const |
| Returns whether if the designated part of the data is available in the requested representation. More... | |
| template<typename T > | |
| const Ptr< T > | peek (const Iterator &iterator, b length=unspecifiedLength, int flags=0) const |
| Returns the designated part of the data represented by this chunk in the requested representation. More... | |
| virtual SharingRegionTagSet & | getRegionTags () override |
| Returns all region tags. More... | |
| int | getNumTags () const |
| Returns the number of chunk tags. More... | |
| const Ptr< const TagBase > | getTag (int index) const |
| Returns the chunk tag at the given index. More... | |
| void | clearTags (b offset=b(0), b length=b(-1)) |
| Clears the set of chunk tags in the given region. More... | |
| void | copyTags (const Chunk &source, b sourceOffset=b(0), b offset=b(0), b length=b(-1)) |
| Copies the set of chunk tags from the source region to the provided region. More... | |
| template<typename T > | |
| const Ptr< const T > | findTag (b offset=b(0), b length=b(-1)) const |
| Returns the chunk tag for the provided type and range, or returns nullptr if no such chunk tag is found. More... | |
| template<typename T > | |
| const Ptr< const T > | getTag (b offset=b(0), b length=b(-1)) const |
| Returns the chunk tag for the provided type and range, or throws an exception if no such chunk tag is found. More... | |
| template<typename T > | |
| void | mapAllTags (b offset, b length, std::function< void(b, b, const Ptr< const T > &)> f) const |
| Maps all tags in the provided range to to the function. More... | |
| template<typename T > | |
| void | mapAllTagsForUpdate (b offset, b length, std::function< void(b, b, const Ptr< T > &)> f) |
| Maps all tags in the provided range to to the function. More... | |
| template<typename T > | |
| std::vector< SharingRegionTagSet::RegionTag< const T > > | getAllTags (b offset=b(0), b length=b(-1)) const |
| Returns all chunk tags for the provided type and range in a detached vector of region tags. More... | |
| template<typename T > | |
| std::vector< SharingRegionTagSet::RegionTag< T > > | getAllTagsForUpdate (b offset=b(0), b length=b(-1)) |
| Returns all chunk tags for the provided type and range in a detached vector of region tags. More... | |
| template<typename T > | |
| const Ptr< T > | addTag (b offset=b(0), b length=b(-1)) |
| Returns a newly added chunk tag for the provided type and range, or throws an exception if such a chunk tag is already present. More... | |
| template<typename T > | |
| const Ptr< T > | addTagIfAbsent (b offset=b(0), b length=b(-1)) |
| Returns a newly added chunk tag for the provided type and range if absent, or returns the chunk tag that is already present. More... | |
| template<typename T > | |
| std::vector< SharingRegionTagSet::RegionTag< T > > | addTagsWhereAbsent (b offset=b(0), b length=b(-1)) |
| Returns the newly added chunk tags for the provided type and range where the tag is absent. More... | |
| template<typename T > | |
| const Ptr< T > | removeTag (b offset, b length) |
| Removes the chunk tag for the provided type and range, or throws an exception if no such chunk tag is found. More... | |
| template<typename T > | |
| const Ptr< T > | removeTagIfPresent (b offset, b length) |
| Removes the chunk tag for the provided type and range if present, or returns nullptr if no such chunk tag is found. More... | |
| template<typename T > | |
| std::vector< SharingRegionTagSet::RegionTag< T > > | removeTagsWherePresent (b offset, b length) |
| Removes and returns all chunk tags for the provided type and range. More... | |
| virtual std::ostream & | printToStream (std::ostream &stream, int level, int evFlags=0) const override |
| Prints an optinally formatted human readable string representation of the data present in this chunk to the given stream. More... | |
| virtual std::string | str () const override |
| Returns a human readable string representation of the data present in this chunk. More... | |
Public Member Functions inherited from inet::IPrintableObject | |
| virtual | ~IPrintableObject () |
| virtual std::string | printToString () const |
| virtual std::string | printToString (int level, int evFlags=0) const |
| virtual std::string | getInfoStringRepresentation (int evFlags=0) const |
| virtual std::string | getDetailStringRepresentation (int evFlags=0) const |
| virtual std::string | getDebugStringRepresentation (int evFlags=0) const |
| virtual std::string | getTraceStringRepresentation (int evFlags=0) const |
| virtual std::string | getCompleteStringRepresentation (int evFlags=0) const |
Protected Member Functions | |
| virtual const Ptr< Chunk > | peekUnchecked (PeekPredicate predicate, PeekConverter converter, const Iterator &iterator, b length, int flags) const override |
Protected Member Functions inherited from inet::Chunk | |
| int | getBinDumpNumLines () const |
| int | getHexDumpNumLines () const |
| const char * | getBinDumpLine (int index) |
| const char * | getHexDumpLine (int index) |
| const SharingRegionTagSet::RegionTag< TagBase > & | _getTag (int index) const |
| void | checkMutable () const |
| virtual void | handleChange () |
| virtual void | doInsertAtFront (const Ptr< const Chunk > &chunk) |
| virtual void | doInsertAtBack (const Ptr< const Chunk > &chunk) |
| virtual void | doInsertAt (const Ptr< const Chunk > &chunk, b offset) |
| virtual void | doRemoveAtFront (b length) |
| virtual void | doRemoveAtBack (b length) |
| virtual void | doRemoveAt (b offset, b length) |
| template<typename T > | |
| const Ptr< T > | peekConverted (const Iterator &iterator, b length, int flags) const |
| template<typename T > | |
| const Ptr< T > | checkPeekResult (const Ptr< T > &chunk, int flags) const |
Protected Attributes | |
| cPacket * | packet |
Protected Attributes inherited from inet::Chunk | |
| int | id |
| The id is automatically assigned sequentially during construction. More... | |
| int | flags |
| The boolean chunk flags are merged into a single integer. More... | |
| SharingRegionTagSet | regionTags |
| The set of region tags attached to the data represented by this chunk. More... | |
| const typedef Ptr< Chunk >(* | PeekConverter )(const Ptr< Chunk > &chunk, const Chunk::Iterator &iterator, b length, int flags) |
Additional Inherited Members | |
Public Types inherited from inet::Chunk | |
| enum | ChunkType { CT_EMPTY, CT_BITCOUNT, CT_BITS, CT_BYTECOUNT, CT_BYTES, CT_SLICE, CT_ENCRYPTED, CT_CPACKET, CT_SEQUENCE, CT_FIELDS } |
| This enum is used to avoid std::dynamic_cast and dynamicPtrCast. More... | |
| enum | PeekFlag { PF_ALLOW_NULLPTR = (1 << 0), PF_ALLOW_EMPTY = (1 << 1), PF_ALLOW_INCOMPLETE = (1 << 2), PF_ALLOW_INCORRECT = (1 << 3), PF_ALLOW_IMPROPERLY_REPRESENTED = (1 << 4), PF_ALLOW_SERIALIZATION = (1 << 5), PF_ALLOW_ALL = -1 } |
| This enum specifies bitmasks for the flags argument of various peek functions. More... | |
Public Types inherited from inet::IPrintableObject | |
| enum | PrintLevel { PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO, PRINT_LEVEL_COMPLETE = INT_MIN } |
| enum | PrintFlag { PRINT_FLAG_FORMATTED = (1 << 0), PRINT_FLAG_MULTILINE = (1 << 1) } |
Static Public Member Functions inherited from inet::Chunk | |
| static void | serialize (MemoryOutputStream &stream, const Ptr< const Chunk > &chunk, b offset=b(0), b length=b(-1)) |
| Serializes a chunk into the given stream. More... | |
| static const Ptr< Chunk > | deserialize (MemoryInputStream &stream, const std::type_info &typeInfo) |
| Deserializes a chunk from the given stream. More... | |
Static Public Attributes inherited from inet::Chunk | |
| static const b | unspecifiedLength = b(-std::numeric_limits<int64_t>::max()) |
| static bool | enableImplicitChunkSerialization = false |
| Peeking some part into a chunk that requires automatic serialization will throw an exception when implicit chunk serialization is disabled. More... | |
| static int | nextId = 0 |
Protected Types inherited from inet::Chunk | |
| enum | ChunkFlag { CF_IMMUTABLE = (1 << 0), CF_INCOMPLETE = (1 << 1), CF_INCORRECT = (1 << 2), CF_IMPROPERLY_REPRESENTED = (1 << 3) } |
| This enum specifies bitmasks for the flags field of Chunk. More... | |
| typedef bool(* | PeekPredicate) (const Ptr< Chunk > &) |
Static Protected Member Functions inherited from inet::Chunk | |
| static const Ptr< Chunk > | convertChunk (const std::type_info &typeInfo, const Ptr< Chunk > &chunk, b offset, b length, int flags) |
| Creates a new chunk of the given type that represents the designated part of the provided chunk. More... | |
This class represents data using an OMNeT++ cPacket instance.
This can be useful to make components using the new Packet class backward compatible with other components using plain cPackets. The packet is owned by this chunk and it shouldn't be deleted or modified in any way.
| inet::cPacketChunk::cPacketChunk | ( | cPacket * | packet = nullptr | ) |
| inet::cPacketChunk::cPacketChunk | ( | const cPacketChunk & | other | ) |
| inet::cPacketChunk::~cPacketChunk | ( | ) |
|
overridevirtual |
Returns true if the two chunks represent the same binary data.
The two chunks are compared without serialization, and the method is allowed to return false if the result cannot be determined correctly. Tags and other metadata are ignored in the comparison.
Reimplemented from inet::Chunk.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Returns a mutable copy of this chunk in a shared pointer.
Reimplemented from inet::Chunk.
|
inlineoverridevirtual |
Returns the length of data represented by this chunk.
Implements inet::Chunk.
Referenced by peekUnchecked().
|
inlineoverridevirtual |
Returns the type of this chunk as an enum member.
This can be used to avoid expensive std::dynamic_cast and dynamicPtrCast operators.
Implements inet::Chunk.
|
inlinevirtual |
|
overridevirtual |
Reimplemented from inet::Chunk.
|
overridevirtual |
Reimplemented from inet::Chunk.
|
overrideprotectedvirtual |
Implements inet::Chunk.
|
overridevirtual |
Prints an optinally formatted human readable string representation of the feilds of this chunk to the given stream.
Reimplemented from inet::Chunk.
|
protected |
Referenced by containsSameData(), cPacketChunk(), parsimPack(), parsimUnpack(), printFieldsToStream(), and ~cPacketChunk().