decompiler  1.0.0
Public Member Functions | Protected Member Functions | Private Member Functions | Friends | List of all members
TypeUnicode Class Reference

The unicode data-type: i.e. wchar. More...

#include <type.hh>

Inheritance diagram for TypeUnicode:
TypeBase Datatype

Public Member Functions

 TypeUnicode (void)
 For use with restoreXml.
 
 TypeUnicode (const TypeUnicode &op)
 Construct from another TypeUnicode.
 
 TypeUnicode (const string &nm, int4 sz, type_metatype m)
 Construct given name,size, meta-type.
 
virtual Datatypeclone (void) const
 Clone the data-type.
 
virtual void saveXml (ostream &s) const
 Serialize the data-type to XML. More...
 
- Public Member Functions inherited from TypeBase
 TypeBase (const TypeBase &op)
 Construct TypeBase copying properties from another data-type.
 
 TypeBase (int4 s, type_metatype m)
 Construct TypeBase from a size and meta-type.
 
 TypeBase (int4 s, type_metatype m, const string &n)
 Construct TypeBase from a size, meta-type, and name.
 
- Public Member Functions inherited from Datatype
 Datatype (const Datatype &op)
 Construct the base data-type copying low-level properties of another.
 
 Datatype (int4 s, type_metatype m)
 Construct the base data-type providing size and meta-type.
 
 Datatype (int4 s, type_metatype m, const string &n)
 Construct the base data-type providing size, meta-type, and name.
 
virtual ~Datatype (void)
 Destructor.
 
bool isCoreType (void) const
 Is this a core data-type.
 
bool isCharPrint (void) const
 Does this print as a 'char'.
 
bool isEnumType (void) const
 Is this an enumerated type.
 
bool isPowerOfTwo (void) const
 Is this a flag-based enumeration.
 
bool isASCII (void) const
 Does this print as an ASCII 'char'.
 
bool isUTF16 (void) const
 Does this print as UTF16 'wchar'.
 
bool isUTF32 (void) const
 Does this print as UTF32 'wchar'.
 
bool isVariableLength (void) const
 Is this a variable length structure.
 
bool hasSameVariableBase (const Datatype *ct) const
 Are these the same variable length data-type. More...
 
bool isOpaqueString (void) const
 Is this an opaquely encoded string.
 
uint4 getInheritable (void) const
 Get properties pointers inherit.
 
type_metatype getMetatype (void) const
 Get the type meta-type.
 
uint8 getId (void) const
 Get the type id.
 
int4 getSize (void) const
 Get the type size.
 
const string & getName (void) const
 Get the type name.
 
virtual void printRaw (ostream &s) const
 Print a description of the type to stream. More...
 
virtual DatatypegetSubType (uintb off, uintb *newoff) const
 Recover component data-type one-level down. More...
 
virtual DatatypenearestArrayedComponentForward (uintb off, uintb *newoff, int4 *elSize) const
 
virtual DatatypenearestArrayedComponentBackward (uintb off, uintb *newoff, int4 *elSize) const
 
virtual int4 numDepend (void) const
 Return number of component sub-types.
 
virtual DatatypegetDepend (int4 index) const
 Return the i-th component sub-type.
 
virtual void printNameBase (ostream &s) const
 Print name as short prefix.
 
virtual int4 compare (const Datatype &op, int4 level) const
 Compare for functional equivalence. More...
 
virtual int4 compareDependency (const Datatype &op) const
 Compare for storage in tree structure. More...
 
int4 typeOrder (const Datatype &op) const
 Order this with -op- datatype.
 
int4 typeOrderBool (const Datatype &op) const
 Order this with -op-, treating bool data-type as special. More...
 
void saveXmlBasic (ostream &s) const
 Save basic data-type properties. More...
 
void saveXmlRef (ostream &s) const
 Write an XML reference of this to stream. More...
 
bool isPtrsubMatching (uintb offset) const
 Is this data-type suitable as input to a CPUI_PTRSUB op. More...
 

Protected Member Functions

virtual void restoreXml (const Element *el, TypeFactory &typegrp)
 Restore data-type from XML. More...
 
- Protected Member Functions inherited from Datatype
void restoreXmlBasic (const Element *el)
 Recover basic data-type properties. More...
 

Private Member Functions

void setflags (void)
 Set unicode property flags. More...
 

Friends

class TypeFactory
 

Additional Inherited Members

- Protected Types inherited from Datatype
enum  {
  coretype = 1, chartype = 2, enumtype = 4, poweroftwo = 8,
  utf16 = 16, utf32 = 32, opaque_string = 64, variable_length = 128
}
 Boolean properties of datatypes. More...
 
- Static Protected Member Functions inherited from Datatype
static uint8 hashName (const string &nm)
 Produce a data-type id by hashing the type name. More...
 
static uint8 hashSize (uint8 id, int4 size)
 Reversibly hash size into id. More...
 
- Protected Attributes inherited from Datatype
int4 size
 Size (of variable holding a value of this type)
 
string name
 Name of type.
 
type_metatype metatype
 Meta-type - type disregarding size.
 
uint4 flags
 Boolean properties of the type.
 
uint8 id
 A unique id for the type (or 0 if an id is not assigned)
 

Detailed Description

The unicode data-type: i.e. wchar.

This supports encoding elements that are wider than 1-byte

Member Function Documentation

void TypeUnicode::restoreXml ( const Element el,
TypeFactory typegrp 
)
protectedvirtual

Restore data-type from XML.

Restore a Datatype object from an XML element

Parameters
elis the XML element
typegrpis the underlying TypeFactory that will hold the new object

Reimplemented from Datatype.

References Datatype::restoreXmlBasic().

Referenced by TypeFactory::restoreXmlTypeNoRef().

void TypeUnicode::saveXml ( ostream &  s) const
virtual

Serialize the data-type to XML.

Write out a formal description of the data-type as an XML <type> tag. For composite data-types, the description goes down one level, describing the component types only by reference.

Parameters
sis the stream to write to

Reimplemented from Datatype.

References a_v_b(), and Datatype::saveXmlBasic().

void TypeUnicode::setflags ( void  )
private

Set unicode property flags.

Properties that specify which encoding this type uses are set based on the size of the data-type. I.e. select UTF8, UTF16, or UTF32

References Datatype::chartype, Datatype::flags, Datatype::size, Datatype::utf16, and Datatype::utf32.

Referenced by TypeUnicode().


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