Kicking it Olde Sküül! Burgerlib on Github Follow Olde Sküül on Twitter Burgerbecky on LinkedIn Burgerbecky on LinkedIn
Loading...
Searching...
No Matches
Burger::Flash::TraitsInfo Class Reference

Optional class traits. More...

Inheritance diagram for Burger::Flash::TraitsInfo:
Collaboration diagram for Burger::Flash::TraitsInfo:

Public Types

enum  eKind {
  Trait_Slot = 0 , Trait_Method = 1 , Trait_Getter = 2 , Trait_Setter = 3 ,
  Trait_Class = 4 , Trait_Function = 5 , Trait_Const = 6 , Trait_Invalid = 255
}
 
enum  eAttribute { ATTR_Final = 0x1 , ATTR_Override = 0x2 , ATTR_Metadata = 0x4 }
 

Public Member Functions

 TraitsInfo ()
 Standard constructor.
 
virtual ~TraitsInfo ()
 Standard destructor.
 
void Read (Stream *pStream, ABC_Definition *pABCDefinition)
 Read in the data from the file stream.
 
- Public Member Functions inherited from Burger::WeakAndStrongBase
ProxyReferenceCounterGetProxyReferenceCounter (void) const noexcept
 Function used by WeakPointer.
 
const Burger::StaticRTTIget_StaticRTTI (void) const noexcept override
 Get the description to the class.
 
- Public Member Functions inherited from Burger::ReferenceCounter
 ReferenceCounter () noexcept
 Sets the reference count to zero.
 
virtual ~ReferenceCounter ()
 Destructor.
 
void AddRef (void) noexcept
 Increase the reference count by 1.
 
void Release (void) noexcept
 Decrease the reference count by 1.
 
- Public Member Functions inherited from Burger::Base
const char * get_class_name (void) const noexcept
 Get the name of the class.
 
virtual ~Base () noexcept=default
 Destructor.
 

Public Attributes

int m_uName
 Index to the multiname constant pool.
 
eKind m_eKind
 Specific kind of data contained in this class.
 
uint_t m_eAttribute
 Attributes for how to handle overrides.
 
union { 
 
   struct { 
 
      uint_t   m_uSlotID 
 Position identification for this trait. More...
 
      uint_t   m_uTypeName 
 Index into the multiname array for this item's name. More...
 
      uint_t   m_uVIndex 
 Index into the constant pool for this data. More...
 
      Flash::OptionDetail_t::eKind   m_eKind 
 Kind of data in the constant pool. More...
 
   }   trait_slot 
 Used by eKind Trait_Slot and Trait_Const. More...
 
   struct { 
 
      uint_t   m_uSlotID 
 Position identification for this trait. More...
 
      uint_t   m_uClassIndex 
 Index into the class array. More...
 
   }   trait_class 
 Used by eKind Trait_Class. More...
 
   struct { 
 
      uint_t   m_uSlotID 
 Position identification for this trait. More...
 
      uint_t   m_uFunction 
 Index into the function array. More...
 
   }   trait_function 
 Used by eKind Trait_Function. More...
 
   struct { 
 
      uint_t   m_uDispatchID 
 Index into the dispatcher array. More...
 
      uint_t   m_uMethodIndex 
 Index into the method array. More...
 
   }   trait_method 
 Used by eKind Trait_Method, Trait_Getter or Trait_Setter. More...
 
};  
 
SimpleArray< uint_tm_uMetadataArray
 Array of indexes into the metadata array.
 

Private Member Functions

 TraitsInfo (const TraitsInfo &)=delete
 
TraitsInfooperator= (const TraitsInfo &)=delete
 
 TraitsInfo (TraitsInfo &&)=delete
 
TraitsInfooperator= (TraitsInfo &&)=delete
 

Additional Inherited Members

- Static Public Attributes inherited from Burger::WeakAndStrongBase
static const Burger::StaticRTTI g_StaticRTTI
 The global description of the class.
 
- Static Public Attributes inherited from Burger::ReferenceCounter
static const Burger::StaticRTTI g_StaticRTTI
 The global description of the class.
 
- Static Public Attributes inherited from Burger::Base
static const Burger::StaticRTTI g_StaticRTTI
 The global description of the class.
 

Detailed Description

Optional class traits.


A trait is a fixed property of an object or class; it has a name, a type, and some associated data. The TraitsInfo structure bundles these data.

Full documentation is found on page 29 of the file avm2overview.pdf

See also
OptionInfo

Member Enumeration Documentation

◆ eAttribute

Enumerator
ATTR_Final 

Is used with Trait_Method, Trait_Getter and Trait_Setter. It marks a method that cannot be overridden by a sub-class.

ATTR_Override 

Is used with Trait_Method, Trait_Getter and Trait_Setter. It marks a method that has been overridden in this class.

ATTR_Metadata 

Is used to signal that the fields metadata_count and metadata follow the data field in the traits_info entry.

◆ eKind

Enumerator
Trait_Slot 

Data is found in trait_slot.

Trait_Method 

Data is found in trait_method.

Trait_Getter 

Data is found in trait_method.

Trait_Setter 

Data is found in trait_method.

Trait_Class 

Data is found in trait_class.

Trait_Function 

Data is found in trait_function.

Trait_Const 

Data is found in trait_slot.

Trait_Invalid 

Invalid record.

Constructor & Destructor Documentation

◆ TraitsInfo() [1/3]

Burger::Flash::TraitsInfo::TraitsInfo ( )

Standard constructor.


Initialize to defaults

See also
TraitsInfo

◆ ~TraitsInfo()

Burger::Flash::TraitsInfo::~TraitsInfo ( )
virtual

Standard destructor.


Release any allocated data

See also
TraitsInfo()

◆ TraitsInfo() [2/3]

Burger::Flash::TraitsInfo::TraitsInfo ( const TraitsInfo & )
privatedelete

◆ TraitsInfo() [3/3]

Burger::Flash::TraitsInfo::TraitsInfo ( TraitsInfo && )
privatedelete

Member Function Documentation

◆ operator=() [1/2]

TraitsInfo & Burger::Flash::TraitsInfo::operator= ( const TraitsInfo & )
privatedelete

◆ operator=() [2/2]

TraitsInfo & Burger::Flash::TraitsInfo::operator= ( TraitsInfo && )
privatedelete

◆ Read()

void Burger::Flash::TraitsInfo::Read ( Stream * pStream,
ABC_Definition * pABCDefinition )

Read in the data from the file stream.


Parse this record from the input stream

Parameters
pStreamPointer to the input stream
pABCDefinitionPointer to the parent Adobe Byte Code

Member Data Documentation

◆ [union]

◆ m_eAttribute

uint_t Burger::Flash::TraitsInfo::m_eAttribute

Attributes for how to handle overrides.

◆ m_eKind [1/2]

eKind Burger::Flash::TraitsInfo::m_eKind

Specific kind of data contained in this class.

◆ m_eKind [2/2]

Flash::OptionDetail_t::eKind Burger::Flash::TraitsInfo::m_eKind

Kind of data in the constant pool.

◆ m_uClassIndex

uint_t Burger::Flash::TraitsInfo::m_uClassIndex

Index into the class array.

◆ m_uDispatchID

uint_t Burger::Flash::TraitsInfo::m_uDispatchID

Index into the dispatcher array.

◆ m_uFunction

uint_t Burger::Flash::TraitsInfo::m_uFunction

Index into the function array.

◆ m_uMetadataArray

SimpleArray<uint_t> Burger::Flash::TraitsInfo::m_uMetadataArray

Array of indexes into the metadata array.

◆ m_uMethodIndex

uint_t Burger::Flash::TraitsInfo::m_uMethodIndex

Index into the method array.

◆ m_uName

int Burger::Flash::TraitsInfo::m_uName

Index to the multiname constant pool.

◆ m_uSlotID

uint_t Burger::Flash::TraitsInfo::m_uSlotID

Position identification for this trait.

◆ m_uTypeName

uint_t Burger::Flash::TraitsInfo::m_uTypeName

Index into the multiname array for this item's name.

◆ m_uVIndex

uint_t Burger::Flash::TraitsInfo::m_uVIndex

Index into the constant pool for this data.

◆ [struct]

struct { ... } Burger::Flash::TraitsInfo::trait_class

Used by eKind Trait_Class.

◆ [struct]

struct { ... } Burger::Flash::TraitsInfo::trait_function

Used by eKind Trait_Function.

◆ [struct]

struct { ... } Burger::Flash::TraitsInfo::trait_method

◆ [struct]

struct { ... } Burger::Flash::TraitsInfo::trait_slot

Used by eKind Trait_Slot and Trait_Const.