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

Description

Terminated string encoding scheme.

A string whose character octets are followed by octets for a special code point that marks the end of the string but is not included as part of the string's characters. An example is C-style NUL-terminated ASCII.

Definition at line 694 of file String.h.

#include <Rose/BinaryAnalysis/String.h>

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

Public Types

typedef Sawyer::SharedPointer< TerminatedStringPtr
 Shared ownership pointer to a TerminatedString.
 
- 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< CodePointterminated () const
 Returns the decoded termination character, if any.
 
const CodePointsterminators () const
 Property: string termination code points.
 
CodePointsterminators ()
 Property: string termination code points.
 
- 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 CharacterEncodingForm::Ptr &cef, const CharacterEncodingScheme::Ptr &ces, const CodePointPredicate::Ptr &cpp, const CodePoints &terminators)
 
static Ptr instance (const CharacterEncodingForm::Ptr &cef, const CharacterEncodingScheme::Ptr &ces, const CodePointPredicate::Ptr &cpp, CodePoint terminator=0)
 

Protected Member Functions

 TerminatedString (const CharacterEncodingForm::Ptr &cef, const CharacterEncodingScheme::Ptr &ces, const CodePointPredicate::Ptr &cpp, const CodePoints &terminators)
 
- 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 TerminatedString.

See Shared ownership.

Definition at line 703 of file String.h.

Constructor & Destructor Documentation

◆ TerminatedString()

Rose::BinaryAnalysis::Strings::TerminatedString::TerminatedString ( const CharacterEncodingForm::Ptr cef,
const CharacterEncodingScheme::Ptr ces,
const CodePointPredicate::Ptr cpp,
const CodePoints terminators 
)
inlineprotected

Definition at line 698 of file String.h.

Member Function Documentation

◆ instance() [1/2]

static Ptr Rose::BinaryAnalysis::Strings::TerminatedString::instance ( const CharacterEncodingForm::Ptr cef,
const CharacterEncodingScheme::Ptr ces,
const CodePointPredicate::Ptr cpp,
const CodePoints terminators 
)
inlinestatic

Definition at line 705 of file String.h.

◆ instance() [2/2]

static Ptr Rose::BinaryAnalysis::Strings::TerminatedString::instance ( const CharacterEncodingForm::Ptr cef,
const CharacterEncodingScheme::Ptr ces,
const CodePointPredicate::Ptr cpp,
CodePoint  terminator = 0 
)
inlinestatic

Definition at line 709 of file String.h.

◆ clone()

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

Create a new copy of this encoder.

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

Definition at line 713 of file String.h.

◆ name()

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

◆ encode()

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

Encode a string into a sequence of octets.

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

◆ decode()

virtual State Rose::BinaryAnalysis::Strings::TerminatedString::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::TerminatedString::reset ( )
overridevirtual

Reset the state machine to an initial state.

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

◆ terminated()

Sawyer::Optional< CodePoint > Rose::BinaryAnalysis::Strings::TerminatedString::terminated ( ) const
inline

Returns the decoded termination character, if any.

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 733 of file String.h.

◆ terminators() [1/2]

const CodePoints & Rose::BinaryAnalysis::Strings::TerminatedString::terminators ( ) const
inline

Property: string termination code points.

A list of code points (characters) that cause a string to be terminated. When decoding a string, if a terminating code point is encountered then the string ends at the previous code point even if the terminating code point also satisfies the code point predicate.

Definition at line 742 of file String.h.

◆ terminators() [2/2]

CodePoints & Rose::BinaryAnalysis::Strings::TerminatedString::terminators ( )
inline

Property: string termination code points.

A list of code points (characters) that cause a string to be terminated. When decoding a string, if a terminating code point is encountered then the string ends at the previous code point even if the terminating code point also satisfies the code point predicate.

Definition at line 743 of file String.h.


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