Adds buffer (re)allocation functions to cCommBuffer. This functionality is not always needed, as some libraries manage their pack/unpack buffers internally.
Public Member Functions | |
cCommBufferBase () | |
virtual | ~cCommBufferBase () |
Buffer management | |
char * | getBuffer () const |
int | getBufferLength () const |
void | allocateAtLeast (int size) |
void | setMessageSize (int size) |
int | getMessageSize () const |
void | reset () |
virtual bool | isBufferEmpty () const override |
virtual void | assertBufferEmpty () override |
virtual void | swap (cCommBufferBase *other) |
|
inline |
Constructor.
|
virtual |
Destructor.
char* getBuffer | ( | ) | const |
Returns the buffer after packing.
int getBufferLength | ( | ) | const |
Returns the size of the buffer.
void allocateAtLeast | ( | int | size | ) |
Extend buffer to the given size is needed. Existing buffer contents may be lost.
void setMessageSize | ( | int | size | ) |
Set message length in the buffer. Used after receiving a message and copying it to the buffer.
int getMessageSize | ( | ) | const |
Returns message length in the buffer.
void reset | ( | ) |
Reset buffer to an empty state.
|
overridevirtual |
Returns true if all data in buffer was used up during unpacking. Returns false if there was underflow (too much data unpacked) or still there are unpacked data in the buffer.
|
overridevirtual |
Utility function. To be called after unpacking a communication buffer, it checks whether the buffer is empty. If it is not (i.e. an underflow or overflow occurred), an exception is thrown.
|
virtual |
Utility method: swap the contents of the two buffers