|
ROSE 0.11.145.354
|
Basic length encoding scheme.
This length encoding scheme converts a length to a sequence of octets in big- or little-endian order, and vice versa. It needs to know the number of octets per length value, and the byte order of the octets if the length is greater than one.
#include <Rose/BinaryAnalysis/String.h>


Public Member Functions | |
| virtual Ptr | clone () const override |
| Create a new copy of this encoder. | |
| virtual std::string | name () const override |
| Name of encoder. | |
| virtual Octets | encode (size_t) override |
| Encode a length into a sequence of octets. | |
| virtual State | decode (Octet) override |
| Decode one octet. | |
| virtual size_t | consume () override |
| Consume a decoded length. | |
| virtual void | reset () override |
| Reset the decoder state machine. | |
Public Member Functions inherited from Rose::BinaryAnalysis::Strings::LengthEncodingScheme | |
| State | state () const |
| Decoder state. | |
Public Member Functions inherited from Sawyer::SharedObject | |
| SharedObject () | |
| Default constructor. | |
| SharedObject (const SharedObject &) | |
| Copy constructor. | |
| virtual | ~SharedObject () |
| Virtual destructor. | |
| SharedObject & | operator= (const SharedObject &) |
| Assignment. | |
Static Public Member Functions | |
| static Ptr | instance (size_t octetsPerValue, ByteOrder::Endianness sex=ByteOrder::ORDER_UNSPECIFIED) |
Protected Member Functions | |
| BasicLengthEncodingScheme (size_t octetsPerValue, ByteOrder::Endianness sex) | |
Additional Inherited Members | |
Public Types inherited from Rose::BinaryAnalysis::Strings::LengthEncodingScheme | |
| typedef Sawyer::SharedPointer< LengthEncodingScheme > | Ptr |
| Shared ownership pointer to a LengthEncodingScheme. | |
Protected Attributes inherited from Rose::BinaryAnalysis::Strings::LengthEncodingScheme | |
| State | state_ = INITIAL_STATE |
|
inlineprotected |
|
inlinestatic |
|
inlineoverridevirtual |
Create a new copy of this encoder.
Implements Rose::BinaryAnalysis::Strings::LengthEncodingScheme.
|
overridevirtual |
Name of encoder.
Implements Rose::BinaryAnalysis::Strings::LengthEncodingScheme.
|
overridevirtual |
Encode a length into a sequence of octets.
Implements Rose::BinaryAnalysis::Strings::LengthEncodingScheme.
|
overridevirtual |
Decode one octet.
Processes a single octet and updates the decoder state machine. Returns the decoder's new state. See documentation for Strings::State for restrictions on state transitions.
Implements Rose::BinaryAnalysis::Strings::LengthEncodingScheme.
|
overridevirtual |
Consume a decoded length.
The decoder must be in the FINAL_STATE or COMPLETE_STATE, and upon return will be in the INITIAL_STATE.
Implements Rose::BinaryAnalysis::Strings::LengthEncodingScheme.
|
overridevirtual |
Reset the decoder state machine.
Implements Rose::BinaryAnalysis::Strings::LengthEncodingScheme.