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

Description

Basic character encoding scheme.

This character encoding scheme converts code value to a sequence of octets in big- or little-endian order, and vice versa. It needs to know the number of octets per code value, and the byte order of the octets per code value is larger than one.

Definition at line 377 of file String.h.

#include <Rose/BinaryAnalysis/String.h>

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

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 (CodeValue) override
 Encode a code value into a sequence of octets.
 
virtual State decode (Octet) override
 Decode one octet.
 
virtual CodeValue consume () override
 Consume a decoded code value.
 
virtual void reset () override
 Reset the decoder state machine.
 
- Public Member Functions inherited from Rose::BinaryAnalysis::Strings::CharacterEncodingScheme
State state () const
 Decoder state.
 
- 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 (size_t octetsPerValue, ByteOrder::Endianness sex=ByteOrder::ORDER_UNSPECIFIED)
 

Protected Member Functions

 BasicCharacterEncodingScheme (size_t octetsPerValue, ByteOrder::Endianness sex)
 

Additional Inherited Members

- Public Types inherited from Rose::BinaryAnalysis::Strings::CharacterEncodingScheme
typedef Sawyer::SharedPointer< CharacterEncodingSchemePtr
 Shared ownership pointer to a CharacterEncodingScheme.
 
- Protected Attributes inherited from Rose::BinaryAnalysis::Strings::CharacterEncodingScheme
State state_ = INITIAL_STATE
 

Constructor & Destructor Documentation

◆ BasicCharacterEncodingScheme()

Rose::BinaryAnalysis::Strings::BasicCharacterEncodingScheme::BasicCharacterEncodingScheme ( size_t  octetsPerValue,
ByteOrder::Endianness  sex 
)
inlineprotected

Definition at line 382 of file String.h.

Member Function Documentation

◆ instance()

static Ptr Rose::BinaryAnalysis::Strings::BasicCharacterEncodingScheme::instance ( size_t  octetsPerValue,
ByteOrder::Endianness  sex = ByteOrder::ORDER_UNSPECIFIED 
)
inlinestatic

Definition at line 388 of file String.h.

◆ clone()

virtual Ptr Rose::BinaryAnalysis::Strings::BasicCharacterEncodingScheme::clone ( ) const
inlineoverridevirtual

Create a new copy of this encoder.

Implements Rose::BinaryAnalysis::Strings::CharacterEncodingScheme.

Definition at line 391 of file String.h.

◆ name()

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

◆ encode()

virtual Octets Rose::BinaryAnalysis::Strings::BasicCharacterEncodingScheme::encode ( CodeValue  )
overridevirtual

Encode a code value into a sequence of octets.

For instance, an encoder for UTF-16 will encode a code value into two octets.

Implements Rose::BinaryAnalysis::Strings::CharacterEncodingScheme.

◆ decode()

virtual State Rose::BinaryAnalysis::Strings::BasicCharacterEncodingScheme::decode ( Octet  )
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::CharacterEncodingScheme.

◆ consume()

virtual CodeValue Rose::BinaryAnalysis::Strings::BasicCharacterEncodingScheme::consume ( )
overridevirtual

Consume a decoded code value.

The decoder must be in the FINAL_STATE or COMPLETED_STATE and upon return will be in the INITIAL_STATE.

Implements Rose::BinaryAnalysis::Strings::CharacterEncodingScheme.

◆ reset()

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

Reset the decoder state machine.

Implements Rose::BinaryAnalysis::Strings::CharacterEncodingScheme.


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