ROSE 0.11.145.147
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
Rose::BinaryAnalysis::Strings::LengthEncodedString Class Reference

Description

Length-prefixed string encoding scheme.

A string encoding where the octets for the characters are prefixed with an encoded length.

Definition at line 629 of file String.h.

#include <Rose/BinaryAnalysis/String.h>

Inheritance diagram for Rose::BinaryAnalysis::Strings::LengthEncodedString:
Inheritance graph
[legend]
Collaboration diagram for Rose::BinaryAnalysis::Strings::LengthEncodedString:
Collaboration graph
[legend]

Public Types

typedef Sawyer::SharedPointer< LengthEncodedStringPtr
 Shared ownership pointer to a LengthEncodedString.
 
- Public Types inherited from Rose::BinaryAnalysis::Strings::StringEncodingScheme
typedef Sawyer::SharedPointer< StringEncodingSchemePtr
 Shared ownership pointer to a StringEncodingScheme.
 

Public Member Functions

virtual StringEncodingScheme::Ptr clone () const override
 Create a new copy of this encoder.
 
virtual std::string name () const override
 Name of encoding.
 
virtual Octets encode (const CodePoints &) override
 Encode a string into a sequence of octets.
 
virtual State decode (Octet) override
 Decode one octet.
 
virtual void reset () override
 Reset the state machine to an initial state.
 
Sawyer::Optional< size_t > declaredLength () const
 Returns the declared length, if any.
 
LengthEncodingScheme::Ptr lengthEncodingScheme () const
 Property: Lengh encoding scheme.
 
void lengthEncodingScheme (const LengthEncodingScheme::Ptr &les)
 Property: Lengh encoding scheme.
 
- Public Member Functions inherited from Rose::BinaryAnalysis::Strings::StringEncodingScheme
State state () const
 Decoder state.
 
CodePoints consume ()
 Consume pending decoded code points.
 
const CodePointscodePoints () const
 Return pending decoded code points without consuming them.
 
size_t length () const
 Number of code points decoded since reset.
 
CharacterEncodingForm::Ptr characterEncodingForm () const
 Property: Character encoding format.
 
void characterEncodingForm (const CharacterEncodingForm::Ptr &cef)
 Property: Character encoding format.
 
CharacterEncodingScheme::Ptr characterEncodingScheme () const
 Property: Character encoding scheme.
 
void characterEncodingScheme (const CharacterEncodingScheme::Ptr &ces)
 Property: Character encoding scheme.
 
CodePointPredicate::Ptr codePointPredicate () const
 Property: Code point predicate.
 
void codePointPredicate (const CodePointPredicate::Ptr &cpp)
 Property: Code point predicate.
 
- Public Member Functions inherited from Sawyer::SharedObject
 SharedObject ()
 Default constructor.
 
 SharedObject (const SharedObject &)
 Copy constructor.
 
virtual ~SharedObject ()
 Virtual destructor.
 
SharedObjectoperator= (const SharedObject &)
 Assignment.
 

Static Public Member Functions

static Ptr instance (const LengthEncodingScheme::Ptr &les, const CharacterEncodingForm::Ptr &cef, const CharacterEncodingScheme::Ptr &ces, const CodePointPredicate::Ptr &cpp)
 

Protected Member Functions

 LengthEncodedString (const LengthEncodingScheme::Ptr &les, const CharacterEncodingForm::Ptr &cef, const CharacterEncodingScheme::Ptr &ces, const CodePointPredicate::Ptr &cpp)
 
- Protected Member Functions inherited from Rose::BinaryAnalysis::Strings::StringEncodingScheme
 StringEncodingScheme (const CharacterEncodingForm::Ptr &cef, const CharacterEncodingScheme::Ptr &ces, const CodePointPredicate::Ptr &cpp)
 

Additional Inherited Members

- Protected Attributes inherited from Rose::BinaryAnalysis::Strings::StringEncodingScheme
State state_ = INITIAL_STATE
 
CodePoints codePoints_
 
size_t nCodePoints_ = 0
 
CharacterEncodingForm::Ptr cef_
 
CharacterEncodingScheme::Ptr ces_
 
CodePointPredicate::Ptr cpp_
 

Member Typedef Documentation

◆ Ptr

Shared ownership pointer to a LengthEncodedString.

See Shared ownership.

Definition at line 638 of file String.h.

Constructor & Destructor Documentation

◆ LengthEncodedString()

Rose::BinaryAnalysis::Strings::LengthEncodedString::LengthEncodedString ( const LengthEncodingScheme::Ptr les,
const CharacterEncodingForm::Ptr cef,
const CharacterEncodingScheme::Ptr ces,
const CodePointPredicate::Ptr cpp 
)
inlineprotected

Definition at line 633 of file String.h.

Member Function Documentation

◆ instance()

static Ptr Rose::BinaryAnalysis::Strings::LengthEncodedString::instance ( const LengthEncodingScheme::Ptr les,
const CharacterEncodingForm::Ptr cef,
const CharacterEncodingScheme::Ptr ces,
const CodePointPredicate::Ptr cpp 
)
inlinestatic

Definition at line 640 of file String.h.

◆ clone()

virtual StringEncodingScheme::Ptr Rose::BinaryAnalysis::Strings::LengthEncodedString::clone ( ) const
inlineoverridevirtual

Create a new copy of this encoder.

Implements Rose::BinaryAnalysis::Strings::StringEncodingScheme.

Definition at line 644 of file String.h.

◆ name()

virtual std::string Rose::BinaryAnalysis::Strings::LengthEncodedString::name ( ) const
overridevirtual

◆ encode()

virtual Octets Rose::BinaryAnalysis::Strings::LengthEncodedString::encode ( const CodePoints )
overridevirtual

Encode a string into a sequence of octets.

Implements Rose::BinaryAnalysis::Strings::StringEncodingScheme.

◆ decode()

virtual State Rose::BinaryAnalysis::Strings::LengthEncodedString::decode ( Octet  )
overridevirtual

Decode one octet.

Processes a single octet and updates the decoder state machine. Returns the new state. See documentation for Strings::State for restrictions on state transitions.

Implements Rose::BinaryAnalysis::Strings::StringEncodingScheme.

◆ reset()

virtual void Rose::BinaryAnalysis::Strings::LengthEncodedString::reset ( )
overridevirtual

Reset the state machine to an initial state.

Reimplemented from Rose::BinaryAnalysis::Strings::StringEncodingScheme.

◆ declaredLength()

Sawyer::Optional< size_t > Rose::BinaryAnalysis::Strings::LengthEncodedString::declaredLength ( ) const
inline

Returns the declared length, if any.

The declared length is the value of the decoded length prefix, not necessarily the number of code points that have been decoded. This can be called from any state except it will always return nothing in the INITIAL_STATE. Therefore, this method should be called prior to the consume call.

Definition at line 666 of file String.h.

◆ lengthEncodingScheme() [1/2]

LengthEncodingScheme::Ptr Rose::BinaryAnalysis::Strings::LengthEncodedString::lengthEncodingScheme ( ) const
inline

Property: Lengh encoding scheme.

The length encoding scheme is responsible for encoding the string length as a sequence of octets.

Definition at line 673 of file String.h.

◆ lengthEncodingScheme() [2/2]

void Rose::BinaryAnalysis::Strings::LengthEncodedString::lengthEncodingScheme ( const LengthEncodingScheme::Ptr les)
inline

Property: Lengh encoding scheme.

The length encoding scheme is responsible for encoding the string length as a sequence of octets.

Definition at line 674 of file String.h.


The documentation for this class was generated from the following file: