Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayLib::cScriptableInterfaceDynamic Class Reference

#include <cScriptableInterfaceDynamic.h>

Inheritance diagram for GrayLib::cScriptableInterfaceDynamic:
GrayLib::cScriptableInterfaceDef Gray::cHeapObject Gray::cRefBase Gray::CObject Gray::IHeapObject IUnknown

Public Types

typedef cScriptableInterfaceDef CSCRIPTABLE_SUPER_t
 
- Public Types inherited from GrayLib::cScriptableInterfaceDef
enum  P_TYPE_ { P_QTY }
 < if the InterfaceDef is itself an interface. More...
 

Public Member Functions

virtual cScriptableInterfaceDefPtr _stdcall get_ScriptInterfaceDef () const
 
 cScriptableInterfaceDynamic ()
 
virtual ~cScriptableInterfaceDynamic ()
 
virtual HRESULT DisposeThis ()
 
HRESULT SerializeInput (cStreamInput &stmIn)
 
SCRIPTINTERFACEID_t get_HashCode () const noexcept
 
virtual cScriptableMethodGetMethodPtr (SCRIPTPROPID_t index) const noexcept
 
virtual SCRIPTPROPID_t GetMethodIndex (const cScriptableMethod *pMethod) const
 
virtual cScriptablePropGetPropPtr (SCRIPTPROPID_t index) const
 
virtual SCRIPTPROPID_t GetPropIndex (const cScriptableProp *pProp) const
 
- Public Member Functions inherited from GrayLib::cScriptableInterfaceDef
 cScriptableInterfaceDef (const TYPEINFO_t &TypeInfo, const ATOMCHAR_t *pszName, cScriptableProp *pProps, cScriptableMethod *pMethods, cScriptableInterfaceDef *pSubInterface, const ATOMCHAR_t *pszHelp)
 
virtual ~cScriptableInterfaceDef ()
 
virtual bool isValidCheck () const noexcept
 < memory allocation and structure definitions are valid. More...
 
const ATOMCHAR_tget_Name () const noexcept
 
SCRIPTINTERFACEID_t get_InterfaceID () const noexcept
 
SCRIPTPROPID_t get_MethodQty () const noexcept
 
SCRIPTPROPID_t FindMethodIndex (const ATOMCHAR_t *pszName) const
 
cScriptableMethodFindMethodPtrI (const ATOMCHAR_t *pszName) const
 
SCRIPTPROPID_t get_PropQty () const
 
SCRIPTPROPID_t FindPropIndex (const ATOMCHAR_t *pszName) const
 
cScriptablePropFindPropPtrI (const ATOMCHAR_t *pszName) const
 
bool SetMethodPrivLevel (const ATOMCHAR_t *pszMethod, PLEVEL_TYPE ePrivLevel)
 Adjust a privilege level for a method of this class. More...
 
bool IsInterfaceInit () const
 
HRESULT SerializeOutput (cStreamOutput &out, PLEVEL_TYPE ePrivLevel) const
 
virtual void InitScriptInterfaceDef ()
 
void InitSubInterfaces ()
 Manage all my sub-interfaces. More...
 
bool HasSubInterface (const cScriptableInterfaceDef *pInterfaceDef) const
 
bool HasInterface (const cScriptableInterfaceDef *pInterfaceDef) const
 
void AddSubInterfaceProps (cScriptableInterfaceDef *pInterface)
 
void AddSubInterfaces (cScriptableInterfaceDef *pSubInterface)
 search All sub classes as well. More...
 
const cScriptableMethodFindMethodStr (const ATOMCHAR_t *pszName) const
 
const cScriptablePropFindPropStr (const ATOMCHAR_t *pszName) const
 
const cScriptablePropFindPropOrMethodStr (const ATOMCHAR_t *pszName) const
 
const cScriptableMethodFindMethodHash (ATOMCODE_t nKey) const
 Find by string hash code. (assume no collisions) More...
 
const cScriptablePropFindPropHash (ATOMCODE_t nKey) const
 
- Public Member Functions inherited from Gray::CObject
virtual ~CObject ()
 
virtual void AssertValid () const
 < memory allocation and structure definitions are valid. More...
 
virtual void Serialize (cArchive &a)
 
- Public Member Functions inherited from Gray::cHeapObject
 cHeapObject ()
 
virtual ~cHeapObject ()
 
bool IsValidInsideN (INT_PTR index) const
 
bool IsValidInsidePtr (void const *pTest) const
 
virtual size_t GetHeapStatsThis (OUT ITERATE_t &iAllocCount) const
 
virtual bool isValidCheck () const noexcept
 
- Public Member Functions inherited from Gray::cRefBase
 cRefBase (int iRefCount=0) noexcept
 
virtual ~cRefBase ()
 
int get_RefCount () const noexcept
 
HASHCODE_t get_HashCode () const noexcept
 
 STDMETHOD_ (HASHCODE_t, get_HashCodeX)() const noexcept
 
virtual void onFinalRelease ()
 
bool isValidObj () const noexcept
 
 STDMETHOD_ (ULONG, AddRef)(void) override
 
 STDMETHOD_ (ULONG, Release)(void) override
 
STDMETHOD() QueryInterface (const IID &riid, void __RPC_FAR *__RPC_FAR *ppvObject) override
 
void IncRefCount ()
 
void DecRefCount ()
 
bool isStaticConstruct () const noexcept
 
void StaticConstruct ()
 
void StaticDestruct ()
 
bool isDestructing () noexcept
 
void SetDestructing ()
 

Public Attributes

cAtomRef m_aName
 m_pszName storage for the interface More...
 
cStringA m_sHelp
 m_pszHelp storage for the interface. More...
 
cArrayRef< cScriptablePropDynamicm_aProps
 m_pProps (cannot assume sorted) More...
 
cArraySortName< cScriptablePropDynamicm_aMethods
 m_pMethods More...
 
- Public Attributes inherited from GrayLib::cScriptableInterfaceDef
const TYPEINFO_tm_TypeInfo
 The C++ typeid(class type) this refers to. (we could derive m_pszName?) MUST HAVE RTTI on! More...
 
const ATOMCHAR_tm_pszName
 Interface Name. More...
 
cScriptableInterfaceDefm_pSubInterface
 primary sub class. (can actually be multi(m_aSubInterfacesAll) or none(nullptr)) More...
 
const char * m_pszHelp
 helpful description for human readers. More...
 
SCRIPTINTERFACEID_t m_nInterfaceID
 enum id to define the class. similar to XOBJTIDX_TYPE ? More...
 
cArraySortPtrName< const cScriptableProp, ATOMCHAR_tm_aPropsAll
 
cArraySortPtrName< const cScriptableMethod, ATOMCHAR_tm_aMethodsAll
 Complete list of all Methods. (includes sub class methods) More...
 
cArraySortPtrHash< const cScriptableProp, ATOMCODE_tm_aPropsAllHash
 We may search by hash code. More...
 
cArraySortPtrHash< const cScriptableMethod, ATOMCODE_tm_aMethodsAllHash
 
cArraySortVal< SCRIPTINTERFACEID_tm_aSubInterfacesAll
 List of interfaces I'm based on (Already added to m_aMethodsAll and m_aPropsAll. More...
 
UINT m_nInstances
 define get_ScriptInterfaceDef() More...
 

Static Public Attributes

static cScriptableInterfaceDef sm_ScriptInterfaceDef
 
- Static Public Attributes inherited from GrayLib::cScriptableInterfaceDef
static cScriptableProp sm_Props [P_QTY+1]
 
static cScriptableInterfaceDef sm_ScriptInterfaceDef
 

Protected Attributes

 CHEAPOBJECT_IMPL
 
- Protected Attributes inherited from GrayLib::cScriptableInterfaceDef
bool m_bInitInterface
 has this been synchronized with the base classes. More...
 
SCRIPTPROPID_t m_iPropQty
 get_PropQty() More...
 
SCRIPTPROPID_t m_iMethodQty
 get_MethodQty() More...
 

Additional Inherited Members

- Protected Member Functions inherited from Gray::cHeapObject
const void * get_HeapPtr () const noexcept override
 Get the top level (outermost, freeable) class pointer. I can delete get_HeapPtr(). More...
 

Detailed Description

Read a dynamic/scriptable definition of cScriptableInterfaceDef This cScriptableInterfaceDef can add/remove props and methods.

Member Typedef Documentation

◆ CSCRIPTABLE_SUPER_t

Constructor & Destructor Documentation

◆ cScriptableInterfaceDynamic()

GrayLib::cScriptableInterfaceDynamic::cScriptableInterfaceDynamic ( )

Interface name to be filled in later.

◆ ~cScriptableInterfaceDynamic()

GrayLib::cScriptableInterfaceDynamic::~cScriptableInterfaceDynamic ( )
virtual

Member Function Documentation

◆ DisposeThis()

HRESULT GrayLib::cScriptableInterfaceDynamic::DisposeThis ( void  )
virtual

◆ get_HashCode()

SCRIPTINTERFACEID_t GrayLib::cScriptableInterfaceDynamic::get_HashCode ( ) const
inlinenoexcept

◆ get_ScriptInterfaceDef()

virtual cScriptableInterfaceDefPtr _stdcall GrayLib::cScriptableInterfaceDynamic::get_ScriptInterfaceDef ( ) const
inlinevirtual

Reimplemented from GrayLib::cScriptableInterfaceDef.

◆ GetMethodIndex()

virtual SCRIPTPROPID_t GrayLib::cScriptableInterfaceDynamic::GetMethodIndex ( const cScriptableMethod pMethod) const
inlinevirtual

Reimplemented from GrayLib::cScriptableInterfaceDef.

◆ GetMethodPtr()

virtual cScriptableMethod* GrayLib::cScriptableInterfaceDynamic::GetMethodPtr ( SCRIPTPROPID_t  index) const
inlinevirtualnoexcept

Reimplemented from GrayLib::cScriptableInterfaceDef.

◆ GetPropIndex()

virtual SCRIPTPROPID_t GrayLib::cScriptableInterfaceDynamic::GetPropIndex ( const cScriptableProp pProp) const
inlinevirtual

Reimplemented from GrayLib::cScriptableInterfaceDef.

◆ GetPropPtr()

virtual cScriptableProp* GrayLib::cScriptableInterfaceDynamic::GetPropPtr ( SCRIPTPROPID_t  index) const
inlinevirtual

Reimplemented from GrayLib::cScriptableInterfaceDef.

◆ SerializeInput()

HRESULT GrayLib::cScriptableInterfaceDynamic::SerializeInput ( cStreamInput stmIn)

Member Data Documentation

◆ CHEAPOBJECT_IMPL

GrayLib::cScriptableInterfaceDynamic::CHEAPOBJECT_IMPL
protected

◆ m_aMethods

cArraySortName<cScriptablePropDynamic> GrayLib::cScriptableInterfaceDynamic::m_aMethods

m_pMethods

◆ m_aName

cAtomRef GrayLib::cScriptableInterfaceDynamic::m_aName

m_pszName storage for the interface

◆ m_aProps

cArrayRef<cScriptablePropDynamic> GrayLib::cScriptableInterfaceDynamic::m_aProps

m_pProps (cannot assume sorted)

◆ m_sHelp

cStringA GrayLib::cScriptableInterfaceDynamic::m_sHelp

m_pszHelp storage for the interface.

◆ sm_ScriptInterfaceDef

cScriptableInterfaceDef GrayLib::cScriptableInterfaceDynamic::sm_ScriptInterfaceDef
static

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