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

#include <cXObject.h>

Inheritance diagram for GrayLib::cXObject:
GrayLib::cScriptableObj IXObject Gray::cThreadLockableRef Gray::CObject Gray::cHeapObject IScriptableObj Gray::cRefBase Gray::cThreadLockStub Gray::IHeapObject IUnknown Gray::cLockableBase GrayGUI::cXWindow GrayLib::cHttpScriptedProtocolStream GrayLib::cScriptContextObj GrayLib::cXObjDef GrayLib::cXObject2 GrayGUI::cXColorGrid GrayGUI::cXComboBox GrayGUI::cXImage GrayGUI::cXProgressBar GrayGUI::cXScrollBar GrayGUI::cXSpinCounter GrayGUI::cXStaticMultiScroll GrayGUI::cXWindowText GrayLib::cXObjPack GrayLib::cXObjPackChild GrayMapData::cMapPatch GrayX::GrayXRoot

Public Types

enum  P_TYPE_ { P_QTY }
 
enum  M_TYPE_ { M_QTY }
 base methods that all objects have. More...
 

Public Member Functions

virtual cScriptableInterfaceDefPtr _stdcall get_ScriptInterfaceDef () const
 
 cXObject (UID_t nUID=cUID::k_CLEAR, cXObjDef *pBaseDef=nullptr)
 
virtual ~cXObject ()
 
virtual bool isValidCheck () const noexcept override
 
 STDMETHOD_ (XOBJTID_t, get_XObjTypeId)() const
 
const ATOMCHAR_tget_XObjTypeName () const
 
virtual int get_BaseRefCount () const
 
bool isValidUID () const noexcept
 
UID_t get_UIDValue () const noexcept
 
UID_t get_HashCode () const noexcept
 
 STDMETHOD_ (HASHCODE_t, get_HashCodeX)() const noexcept override
 
void put_UIDValuePrivate (UID_t dwIndex)
 
 STDMETHOD_ (void, put_UIDValue)(UID_t dwIndex)
 
 STDMETHOD_ (cString, get_Name)() const override
 
STDMETHOD() put_Name (cString sName)
 
 STDMETHOD_ (cString, get_NameDeco)() const
 
 STDMETHOD_ (cStringA, get_SymName)() const override
 
STDMETHOD() put_SymName (cAtomRef aSymName, bool bOverwrite=false)
 
HRESULT put_SymName2 (cAtomRef aSymName)
 
cXObjDefget_BaseDef () const
 
virtual bool put_BaseDef (cXObjDef *pDef)
 
 STDMETHOD_ (cAtomRef, get_BaseSymNameA)() const
 shortcut for symbolic name for get_BaseDef() More...
 
virtual cRefPtr< cXObjectget_ContainerObject () const
 
virtual cVariant get_ContainerVar () const
 
STDMETHOD() put_ContainerVar (const cVariant &vVal)
 
bool isMyContainer (const cXObject *pObjParent) const
 
void InitObjState ()
 
XObjState_TYPE get_ObjState () const noexcept
 
bool put_ObjState (XObjState_TYPE eObjState)
 
bool isObjStateLoading () const noexcept
 
bool isObjStateLoading1 () const noexcept
 
bool isObjStateLoaded () const noexcept
 
bool isObjStateModified () const noexcept
 
bool isObjStateDisposed () const noexcept
 
bool isObjStateBad () const noexcept
 
STDMETHOD() SetObjStateLoaded ()
 extra cleanup at the end of the load. More...
 
void SetObjStateBad ()
 
void SetObjStateModified ()
 
void ClearObjStateModified ()
 
const cTimeIntget_TimeSaved () const noexcept
 
void put_TimeSaved (cTimeInt timeSaved)
 
void UpdateTimeSaved ()
 
virtual cVarTuplePtr FindTagA (cAtomRef aTagName) const
 extra Properties/Tags More...
 
cVarTuplePtr FindTag (const ATOMCHAR_t *pszTagName) const
 
void s_WritePropsTags (IScriptableSetter &Update)
 
STDMETHOD() s_PropPut (const cScriptableProp *pProp, const cVariant &vVal) override
 
STDMETHOD() s_PropGet (const cScriptableProp *pProp, OUT cVariant &vValRet) override
 
STDMETHOD() s_Invoke (const cScriptableMethod *pMethod, const cVariant &vArgs, OUT cVariant &vValRet) override
 
STDMETHOD() s_GetByName (const ATOMCHAR_t *pszPropName, OUT cVariant &rvValRet) override
 
STDMETHOD() s_TagPut (const ATOMCHAR_t *pszTagName, const cVariant &vValSet)
 
STDMETHOD() s_TagGet (const ATOMCHAR_t *pszTagName, OUT cVariant &vValRet)
 
STDMETHOD() s_LoadProps (IScriptableEnumerator &rProps)
 
STDMETHOD() s_EventSinkAdd (cXObjDef *pXObjDef, bool bRemove=false)
 
cStringA s_PropGetDumpStr (const cScriptableProp *pProp, XOBJ_DUMP_MASK_t uFlags=0)
 Enumerate methods and props. reflection/introspection. More...
 
HRESULT s_DumpKeys (cStreamOutput &rout, XOBJ_DUMP_MASK_t uFlags, const cScriptableProp *const *ppProps, ITERATE_t iQty)
 
HRESULT s_DumpHelp (cStreamOutput &rout, const cVariant &vArgs)
 
virtual HRESULT DisposeThis ()
 utility More...
 
virtual XOBJ_WEIRD_t IsWeird () const
 
virtual XOBJ_WEIRD_t FixWeird ()
 
virtual size_t GetHeapStats (OUT ITERATE_t &iAllocCount) const
 allocs for all children. does NOT include sizeof(*this) More...
 
 IUNKNOWN_DISAMBIG_R (cThreadLockableRef)
 
STDMETHOD() QueryInterface (const IID &riid, void **ppvObject) override
 
- Public Member Functions inherited from GrayLib::cScriptableObj
virtual ~cScriptableObj ()
 
 STDMETHOD_ (cScriptableInterfaceDefPtr, get_ScriptInterfaceDef)() const
 
STDMETHOD() s_PropGet (const cScriptableProp *pProp, OUT cVariant &vValRet) override
 
STDMETHOD() s_PropPut (const cScriptableProp *pProp, const cVariant &vVal) override
 
STDMETHOD() s_Invoke (const cScriptableMethod *pMethod, const cVariant &vArgs, OUT cVariant &vValRet) override
 
const cScriptablePropFindPropStr (const ATOMCHAR_t *pszPropName) const
 
const cScriptableMethodFindMethodStr (const ATOMCHAR_t *pszPropName) const
 
HRESULT s_InvokeKey (const ATOMCHAR_t *pszMethodKey, const cVariant &vArgs, OUT cVariant &vValRet)
 
 STDMETHOD_ (cVariant, s_Exec)(const ATOMCHAR_t *pszMethodKey
 
STDMETHOD() s_GetEnum (ITERATE_t i, OUT cStringA &rsPropName, OUT cVariant &rvValRet) override
 
STDMETHOD() s_GetByName (const ATOMCHAR_t *pszPropName, OUT cVariant &rvValRet) override
 
STDMETHOD() s_Put (const ATOMCHAR_t *pszPropName, const cVariant &vValSet) override
 
void s_LoadPropsCommandLine (cAppArgs &args)
 
HRESULT s_LoadPropsBase (IScriptableEnumerator &rProps)
 
HRESULT s_LoadPropVar (const ATOMCHAR_t *pszPropName, const cVariant &vVal)
 
HRESULT s_WritePropNULL (IScriptableSetter &s, const cScriptableProp *pProp)
 
HRESULT s_WriteProp (IScriptableSetter &s, const cScriptableProp *pProp)
 
HRESULT s_WritePropsClass (IScriptableSetter &s, const cScriptableInterfaceDef *pClass)
 
HRESULT s_WritePropsArray (IScriptableSetter &s, const cScriptableProp *pProps, IScriptableObj *pDefaultSkip=nullptr)
 
STDMETHOD() s_WriteProps (IScriptableSetter &s)
 
 STDMETHOD_ (cVariant, s_Get)(const ATOMCHAR_t *pszPropName)
 
cVariant s_Get (const cScriptableProp &rProp)
 
 STDMETHOD_ (cString, s_GetStr)(const ATOMCHAR_t *pszPropName)
 
 STDMETHOD_ (float, s_GetFloat)(const ATOMCHAR_t *pszPropName)
 
STDMETHOD() GetTypeInfoCount (UINT *pctinfo)
 
- Public Member Functions inherited from Gray::cThreadLockableRef
 cThreadLockableRef (int iStaticRefCount=0) noexcept
 
virtual ~cThreadLockableRef ()
 
virtual void onThreadLockFail (TIMESYSD_t dwWaitMS)
 
- 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 Member Functions inherited from Gray::cThreadLockStub
THREADID_t get_ThreadLockOwner () 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
 

Public Attributes

cVarMap m_TagMap
 attach extra tags here. (e.g. properties that don't apply to all instances. ASSUME NO OVERLAP with defined props.) More...
 
- Public Attributes inherited from GrayLib::cScriptableObj
const cVariantvArgs = cVariant::k_VarNULL)
 

Static Public Attributes

static cScriptableInterfaceDef sm_ScriptInterfaceDef
 
static cScriptableProp sm_Props [P_QTY+1]
 
static cScriptableMethod sm_Methods [M_QTY+1]
 
static ITERATE_t sm_iLoadingCount = 0
 are we loading ? LoadXObject() reentrant ? More...
 

Protected Attributes

 CHEAPOBJECT_IMPL
 
cRefPtr< cXObjDefm_pBaseDef
 This XObject is based on a template of other XObject/XObjDef. overloads it's props via m_TagMap. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from GrayLib::cScriptableObj
static HRESULT GRAYCALL CopyAllProps (IScriptableSetter *pObjDest, IScriptableEnumerator &rProps, int iStart=0)
 
- Protected Member Functions inherited from Gray::cLockableBase
 cLockableBase () noexcept
 
 ~cLockableBase ()
 
LONG get_LockCount () const
 
bool isLocked () const
 
void IncLockCount ()
 
LONG DecLockCount ()
 
void Lock ()
 
LONG Unlock ()
 
- 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

Base class for object that is defined by references.

Note
Similar to GNOME GObject, or QT QObject (http://doc.trolltech.com/4.6/qobject.html) cRefBase = will auto "delete this" self when cRefBase reference count goes to 0.

a cXObject is/has:

  1. heap allocated and smart pointer reference counted. cRefPtr<>
  2. has a UID_t for an XObject global hash table.
  3. may optionally have an associated cXObjDef for default props? for templates of types of objects.
  4. current object state. XObjState_TYPE. is it loaded, modified/dirty, etc?
  5. optional property extension map/tags. cVarMap
  6. a text (friendly) name method. get_Name()
  7. scriptable properties and methods via IScriptableObj - i.e. has s_Invoke, s_PropGet, ...
  8. Containable in a hierarchy. get_ContainerObject, isMyContainer()
Note
The UID_t never changes once set. (until freed)
UID_t could be stored with a CHash or cUIDManager

Member Enumeration Documentation

◆ M_TYPE_

base methods that all objects have.

Enumerator
M_QTY 

◆ P_TYPE_

Enumerator
P_QTY 

Constructor & Destructor Documentation

◆ cXObject()

GrayLib::cXObject::cXObject ( UID_t  nUID = cUID::k_CLEAR,
cXObjDef pBaseDef = nullptr 
)
explicit

MUST connect the UID to the cXObjMgr later. when the object is loaded.

Note
virtuals don't work here !

◆ ~cXObject()

GrayLib::cXObject::~cXObject ( )
virtual

ASSUME we disconnect the UID from the cXObjMgr BEFORE in DisposeThis()

Note
virtuals don't work here !

Member Function Documentation

◆ ClearObjStateModified()

void GrayLib::cXObject::ClearObjStateModified ( )

I just saved this.

◆ DisposeThis()

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

utility

detach my children etc.

Destroy this object even though there may be references to it. indicate to anyone who looks that this is a deleted object ? Pre-destructor cleanup things can be done since virtuals don't work in destructors.

Note
since this is reference counted it is actually deleted in onFinalRelease()
This is similar to the .NET Dispose() function DEBUG_CHECK( get_ObjState() == XObjState_Disposing );

Reimplemented in GrayGUI::cXStaticMultiScroll, GrayLib::cXObjPack, GrayLib::cXObjModule, GrayLib::cXObjDef, GrayJS::cJSXFile, GrayMapData::cMapPatch, GrayLib::cXObjPackChild, GrayGUI::cXWindow, GrayGUI::cXToolTip, GrayGUI::cXMenu, GrayGUI::cXDialog, GrayGUI::cXDTBase, GrayGUI::cXTableBox, GrayGUI::cXSpinCounter, GrayGUI::cXListBox, and GrayGUI::cXComboBox.

◆ FindTag()

cVarTuplePtr GrayLib::cXObject::FindTag ( const ATOMCHAR_t pszTagName) const

Find a type specific tag for the object. If atom doesn't already exist, i know the var doesn't either.

◆ FindTagA()

cVarTuplePtr GrayLib::cXObject::FindTagA ( cAtomRef  aTagName) const
virtual

extra Properties/Tags

Note
This is virtual to allow hierarchy/defaults for defined vars.

◆ FixWeird()

XOBJ_WEIRD_t GrayLib::cXObject::FixWeird ( )
virtual

Try to fix any problems with this object. called from SetObjStateLoaded();

Returns
Error code = unfixable. (so delete this)

◆ get_BaseDef()

cXObjDef* GrayLib::cXObject::get_BaseDef ( ) const
inline

get Base template definition object.

◆ get_BaseRefCount()

virtual int GrayLib::cXObject::get_BaseRefCount ( ) const
inlinevirtual

The number of references to this object that "don't count" towards actual usage. e.g. references made from the cXObjMgr Used to unload cXObject not actually in use.

Reimplemented in GrayLib::cXObjDef.

◆ get_ContainerObject()

virtual cRefPtr<cXObject> GrayLib::cXObject::get_ContainerObject ( ) const
inlinevirtual

What parent object contains this object in the root hierarchy?

Reimplemented in GrayGUI::cXWindow, and GrayLib::cXObjPackChild.

◆ get_ContainerVar()

cVariant GrayLib::cXObject::get_ContainerVar ( ) const
virtual

String name of my parent as i am connected to the rest of the system.

◆ get_HashCode()

UID_t GrayLib::cXObject::get_HashCode ( ) const
inlinenoexcept

If cXObject is used in a cHash, this as the Hash ID.

◆ get_ObjState()

XObjState_TYPE GrayLib::cXObject::get_ObjState ( ) const
inlinenoexcept

◆ get_ScriptInterfaceDef()

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

◆ get_TimeSaved()

const cTimeInt& GrayLib::cXObject::get_TimeSaved ( ) const
inlinenoexcept

When was this cXObject last persisted?

◆ get_UIDValue()

UID_t GrayLib::cXObject::get_UIDValue ( ) const
inlinenoexcept

◆ get_XObjTypeName()

const ATOMCHAR_t * GrayLib::cXObject::get_XObjTypeName ( ) const

Get FOURCC name of the object type. NOT exactly the same as cScriptableInterfaceDef::get_Name()

◆ GetHeapStats()

size_t GrayLib::cXObject::GetHeapStats ( OUT ITERATE_t iAllocCount) const
virtual

allocs for all children. does NOT include sizeof(*this)

get allocs for all children. does not include sizeof(*this) NOT include size of m_pBaseDef.

Reimplemented in GrayLib::cXObjDef.

◆ InitObjState()

void GrayLib::cXObject::InitObjState ( )

◆ isMyContainer()

bool GrayLib::cXObject::isMyContainer ( const cXObject pObjParent) const

Is this a parent up my parent chain ? grandparent ?

◆ isObjStateBad()

bool GrayLib::cXObject::isObjStateBad ( ) const
noexcept

Is the object is broken? Not loaded correctly?

◆ isObjStateDisposed()

bool GrayLib::cXObject::isObjStateDisposed ( ) const
noexcept

is Disposed ?

◆ isObjStateLoaded()

bool GrayLib::cXObject::isObjStateLoaded ( ) const
inlinenoexcept

Loaded or modified.

◆ isObjStateLoading()

bool GrayLib::cXObject::isObjStateLoading ( ) const
inlinenoexcept

init or loading

◆ isObjStateLoading1()

bool GrayLib::cXObject::isObjStateLoading1 ( ) const
inlinenoexcept

init or loading

◆ isObjStateModified()

bool GrayLib::cXObject::isObjStateModified ( ) const
inlinenoexcept

◆ isValidCheck()

bool GrayLib::cXObject::isValidCheck ( ) const
overridevirtualnoexcept

Reimplemented from Gray::cHeapObject.

◆ isValidUID()

bool GrayLib::cXObject::isValidUID ( ) const
inlinenoexcept

Should check this against UIDMgr ?

◆ IsWeird()

XOBJ_WEIRD_t GrayLib::cXObject::IsWeird ( ) const
virtual
Returns
0 = OK error code we cannot really fix here.

◆ IUNKNOWN_DISAMBIG_R()

GrayLib::cXObject::IUNKNOWN_DISAMBIG_R ( cThreadLockableRef  )

COM IUnknown interface support. identify the true base class for IUnknown

◆ put_BaseDef()

virtual bool GrayLib::cXObject::put_BaseDef ( cXObjDef pDef)
inlinevirtual

put Base template definition object.

◆ put_ContainerVar()

STDMETHOD() GrayLib::cXObject::put_ContainerVar ( const cVariant vVal)
inline

Set hierarchy container with extra information. "(x,y,z)" Point on the ground, "(#UID,x,y,z)" = on another object (Attached?), (sFilename) definition file), or nothing (root or child of root)

◆ put_Name()

STDMETHOD() GrayLib::cXObject::put_Name ( cString  sName)
inline

set display name for the object. No article decoration. e.g. "Thing" override this to provide storage.

◆ put_ObjState()

bool GrayLib::cXObject::put_ObjState ( XObjState_TYPE  eObjState)

◆ put_SymName()

HRESULT GrayLib::cXObject::put_SymName ( cAtomRef  aSymName,
bool  bOverwrite = false 
)

Set a SYMNAME for the object. Normally used only for cXObjDef, but any object with a UID may have an alias in the cXObjMgr.

  • bOverwrite = overwrite an existing name else return error.

◆ put_SymName2()

HRESULT GrayLib::cXObject::put_SymName2 ( cAtomRef  aSymName)

Alternate SYMNAME for this. Not its primary SYMNAME. Give it another SYMNAME= even if it already has one. it's OK to have multiple SYMNAMEs.

◆ put_TimeSaved()

void GrayLib::cXObject::put_TimeSaved ( cTimeInt  timeSaved)
inline

When was this cXObject last persisted?

◆ put_UIDValuePrivate()

void GrayLib::cXObject::put_UIDValuePrivate ( UID_t  dwIndex)

lowest level to set the UID. does not call virtuals!

◆ QueryInterface()

STDMETHODIMP GrayLib::cXObject::QueryInterface ( const IID riid,
void **  ppvObject 
)
override

COM like IUnknown interface support. QueryInterface = a dynamic cast to another interface type.

◆ s_DumpHelp()

HRESULT GrayLib::cXObject::s_DumpHelp ( cStreamOutput rout,
const cVariant vArgs 
)

Dump info about this object to the rout. vArgs = a prop/method name for the object.

◆ s_DumpKeys()

HRESULT GrayLib::cXObject::s_DumpKeys ( cStreamOutput rout,
XOBJ_DUMP_MASK_t  uFlags,
const cScriptableProp *const *  ppProps,
ITERATE_t  iQty 
)

Dump info about this object to rout.

  • uFlags = XOBJ_DUMP_NAME|XOBJ_DUMP_HELP ppProps = pointer to array of key def structures.

◆ s_EventSinkAdd()

STDMETHOD() GrayLib::cXObject::s_EventSinkAdd ( cXObjDef pXObjDef,
bool  bRemove = false 
)
inline

Some objects allow a cXObjDef (with designated interfaces) to be attached to handle methods fired on it.

◆ s_GetByName()

HRESULT GrayLib::cXObject::s_GetByName ( const ATOMCHAR_t pszPropName,
OUT cVariant rvValRet 
)
override

helper for s_PropGet return HRESULT_WIN32_C(ERROR_UNKNOWN_PROPERTY);

◆ s_Invoke()

HRESULT GrayLib::cXObject::s_Invoke ( const cScriptableMethod pMethod,
const cVariant vArgs,
OUT cVariant vValRet 
)
override

Execute command from script

Note
pszKey should be (const cScriptableMethod* pMethod)

◆ s_LoadProps()

HRESULT GrayLib::cXObject::s_LoadProps ( IScriptableEnumerator rProps)

Load keys for the object from the current section pointer in a cScriptFileReader file.

Note
Does not check PLEVEL_TYPE security levels!

◆ s_PropGet()

HRESULT GrayLib::cXObject::s_PropGet ( const cScriptableProp pProp,
OUT cVariant vValRet 
)
override

◆ s_PropGetDumpStr()

cStringA GrayLib::cXObject::s_PropGetDumpStr ( const cScriptableProp pProp,
XOBJ_DUMP_MASK_t  uFlags = 0 
)

Enumerate methods and props. reflection/introspection.

get a single prop key/value as a dump string. Use current cScriptContext

◆ s_PropPut()

HRESULT GrayLib::cXObject::s_PropPut ( const cScriptableProp pProp,
const cVariant vVal 
)
override

Basic object Scripting/Loading/Prop access services.

Note
assume pContext==nullptr is the current thread context?

◆ s_TagGet()

HRESULT GrayLib::cXObject::s_TagGet ( const ATOMCHAR_t pszTagName,
OUT cVariant vValRet 
)

◆ s_TagPut()

HRESULT GrayLib::cXObject::s_TagPut ( const ATOMCHAR_t pszTagName,
const cVariant vValSet 
)

◆ s_WritePropsTags()

void GrayLib::cXObject::s_WritePropsTags ( IScriptableSetter Update)

◆ SetObjStateBad()

void GrayLib::cXObject::SetObjStateBad ( )

unloading from memory ?

◆ SetObjStateLoaded()

HRESULT GrayLib::cXObject::SetObjStateLoaded ( )

extra cleanup at the end of the load.

We are done loading this object. allow the world to see it. Assume Attached it to cXObjMgr::AddXObj. extra cleanup at the end of the load. XOBJ_WEIRD_CODE()

◆ SetObjStateModified()

void GrayLib::cXObject::SetObjStateModified ( )

Some fields of this object are dirty and must be flushed back to the persistent storage.

Note
This can only get called if the object is already fully Loaded! Else this is just part of the loading process.

◆ STDMETHOD_() [1/7]

GrayLib::cXObject::STDMETHOD_ ( cAtomRef  ,
get_BaseSymNameA   
) const

shortcut for symbolic name for get_BaseDef()

◆ STDMETHOD_() [2/7]

GrayLib::cXObject::STDMETHOD_ ( cString  ,
get_Name   
) const
override

◆ STDMETHOD_() [3/7]

GrayLib::cXObject::STDMETHOD_ ( cString  ,
get_NameDeco   
) const
inline

Get an article decorated name. e.g. "a Thing"

◆ STDMETHOD_() [4/7]

GrayLib::cXObject::STDMETHOD_ ( cStringA  ,
get_SymName   
) const
override

◆ STDMETHOD_() [5/7]

GrayLib::cXObject::STDMETHOD_ ( HASHCODE_t  ,
get_HashCodeX   
) const
inlineoverridenoexcept

virtual accessors for scripting. (virtual is less efficient)

◆ STDMETHOD_() [6/7]

GrayLib::cXObject::STDMETHOD_ ( void  ,
put_UIDValue   
)

◆ STDMETHOD_() [7/7]

GrayLib::cXObject::STDMETHOD_ ( XOBJTID_t  ,
get_XObjTypeId   
) const
inline

Override this to return a FOURCC code identifying the top level object type. XOBJTID_t is normally registered with cXObjMgr for cXObjTypeDef. in this case this object is purely dynamic.

◆ UpdateTimeSaved()

void GrayLib::cXObject::UpdateTimeSaved ( )

The resource was saved or just read from the database/scriptfile/registry/etc

Member Data Documentation

◆ CHEAPOBJECT_IMPL

GrayLib::cXObject::CHEAPOBJECT_IMPL
protected

◆ m_pBaseDef

cRefPtr<cXObjDef> GrayLib::cXObject::m_pBaseDef
protected

This XObject is based on a template of other XObject/XObjDef. overloads it's props via m_TagMap.

◆ m_TagMap

cVarMap GrayLib::cXObject::m_TagMap

attach extra tags here. (e.g. properties that don't apply to all instances. ASSUME NO OVERLAP with defined props.)

◆ sm_iLoadingCount

ITERATE_t GrayLib::cXObject::sm_iLoadingCount = 0
static

are we loading ? LoadXObject() reentrant ?

◆ sm_Methods

cScriptableMethod GrayLib::cXObject::sm_Methods
static
Initial value:
=
{
#define cXObjectMethod(a,b,c,d)
}
#define CSCRIPT_PROP_END
Definition: cScriptableInterface.h:264

◆ sm_Props

cScriptableProp GrayLib::cXObject::sm_Props
static
Initial value:
=
{
#define cXObjectProp(a,b,c,d)
}

◆ sm_ScriptInterfaceDef

cScriptableInterfaceDef GrayLib::cXObject::sm_ScriptInterfaceDef
static

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