![]() |
Gray C++ Libraries
0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
|
#include <cXObjModule.h>
Public Member Functions | |
| cXObjModule (const FILECHAR_t *pszPathName, cXObjModuleFactory *pFactory, HMODULE hModule) | |
| virtual | ~cXObjModule () |
| bool | IsValidSignature (UINT32 nGrayLibVer, size_t nSizeofThis) const |
| cOSModImpl * | get_XObjModUnload () const |
| virtual HRESULT | LoadXObjPack (IXObject *pRoot) override |
| Check cached open of this file. check if it should be closed? More... | |
| virtual void | UnloadXObject () override |
| virtual HRESULT | DisposeThis () override |
| utility More... | |
| virtual HRESULT | InvokeMethodInt (cXObjPackChild *pEventSink, const ATOMCHAR_t *pszMethod, const cVariant &vArgs, OUT cVariant &vValRet) override |
Public Member Functions inherited from GrayLib::cXObjPack | |
| virtual | ~cXObjPack () |
| virtual cStringF | get_FilePath () const |
| virtual cString | get_Description () const override |
| STDMETHOD_ (XOBJTID_t, get_XObjTypeId)() const override | |
| HRESULT | CheckForChange () |
| modified on disk? CXOBJFILE_CHANGE_TYPE More... | |
| HRESULT | RegisterChildDef (cXObjDef *pChildDef) |
| bool | UnregisterChildDef (cXObjDef *pChildDef) |
| virtual HRESULT | InvokeMethodInt (cXObjPackChild *pEventSink, const ATOMCHAR_t *pszMethod, const cVariant &vArgs, cVariant &vValRet) |
Public Member Functions inherited from GrayLib::cXObjDef | |
| virtual cScriptableInterfaceDefPtr _stdcall | get_ScriptInterfaceDef () const |
| cXObjDef (UID_t rid, cAtomRef aSymName) | |
| virtual | ~cXObjDef () |
| STDMETHOD() | SetObjStateLoaded () |
| extra cleanup at the end of the load. More... | |
| bool | hasSymName () const noexcept |
| Get the SYMNAME of the resource item. (Used for saving,scripting) may be number or name. More... | |
| cAtomRef | get_SymNameA () const |
| STDMETHOD_ (cStringA, get_SymName)() const override | |
| STDMETHOD() | put_SymName (cAtomRef aSymName, bool bOverwrite=false) override |
| HRESULT | put_SymName2 (cAtomRef aSymName) |
| STDMETHOD_ (cString, get_Name)() const override | |
| virtual void | put_Description (cString sDescription) |
| virtual cString | get_DescriptionFull () const |
| virtual bool | isResourceLoaded () const |
| virtual HRESULT | LoadXObject () |
| virtual HRESULT | ReloadXObject () |
| virtual HRESULT | SaveXObject () |
| virtual void | CopyXObject (const cXObjDef *pDef) |
| virtual int | get_BaseRefCount () const override |
| 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_WriteProps (IScriptableSetter ®) override |
| virtual size_t | GetHeapStats (OUT ITERATE_t &iAllocCount) const override |
| allocs for all children. does NOT include sizeof(*this) More... | |
Public Member Functions inherited from GrayLib::cXObject | |
| 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_t * | get_XObjTypeName () 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) |
| cXObjDef * | get_BaseDef () const |
| virtual bool | put_BaseDef (cXObjDef *pDef) |
| STDMETHOD_ (cAtomRef, get_BaseSymNameA)() const | |
| shortcut for symbolic name for get_BaseDef() More... | |
| virtual cRefPtr< cXObject > | get_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 cTimeInt & | get_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 XOBJ_WEIRD_t | IsWeird () const |
| virtual XOBJ_WEIRD_t | FixWeird () |
| 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 cScriptableProp * | FindPropStr (const ATOMCHAR_t *pszPropName) const |
| const cScriptableMethod * | FindMethodStr (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 |
Additional Inherited Members | |
Public Types inherited from GrayLib::cXObjDef | |
| enum | P_TYPE_ { P_QTY } |
| enum | M_TYPE_ { M_QTY } |
| typedef cXObject | CSCRIPTABLE_SUPER_t |
Public Types inherited from GrayLib::cXObject | |
| enum | P_TYPE_ { P_QTY } |
| enum | M_TYPE_ { M_QTY } |
| base methods that all objects have. More... | |
Static Public Member Functions inherited from GrayLib::cXObjPack | |
| static cStringA GRAYCALL | MakeSymNameFromPath (const FILECHAR_t *pszFilePath) |
Static Public Member Functions inherited from GrayLib::cXObjDef | |
| static cAtomRef GRAYCALL | MakeSymName (const ATOMCHAR_t *pszTypeName, ITERATE_t iEnum) |
Static Public Member Functions inherited from GrayLib::cScriptableObj | |
| static HRESULT GRAYCALL | CopyAllProps (IScriptableSetter *pObjDest, IScriptableEnumerator &rProps, int iStart=0) |
Public Attributes inherited from GrayLib::cXObjPack | |
| cFileStatus | m_Attr |
| Compare to see if this has changed. More... | |
| cStringF | m_sFilePath |
| full file path. More... | |
| bool | m_bDisabled |
| disable all stuff from this file. for debug. More... | |
| cXObjPackFactory * | m_pFactory |
| factory for this type of file. More... | |
Public Attributes inherited from GrayLib::cXObjDef | |
| CHEAPOBJECT_IMPL | |
| TIMESYS_t | m_timeLastUsed |
| system time when last used. for caching More... | |
Public Attributes inherited from GrayLib::cXObject | |
| 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 cVariant & | vArgs = cVariant::k_VarNULL) |
Static Public Attributes inherited from GrayLib::cXObjPack | |
| static const ATOMCHAR_t | k_szSymNamePrefix [] = CATOM_STR("pkg_") |
| SymName prefix e.g. "pkg_". More... | |
| static const XOBJTID_t | k_XObjTypeId = ((DWORD)(BYTE)( 'P' ) | ((DWORD)(BYTE)( 'a' ) << 8) | ((DWORD)(BYTE)( 'k' ) << 16) | ((DWORD)(BYTE)( 'g' ) << 24 )) |
| static cXObjTypeDef | sm_XObjTypeDef = { cXObjPack::k_XObjTypeId, "cXObjPack", 0, nullptr, "cXObjPack Object", nullptr } |
Static Public Attributes inherited from GrayLib::cXObjDef | |
| static cScriptableInterfaceDef | sm_ScriptInterfaceDef |
| static cScriptableProp | sm_Props [P_QTY+1] |
| static cScriptableMethod | sm_Methods [M_QTY+1] |
Static Public Attributes inherited from GrayLib::cXObject | |
| 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 Member Functions inherited from GrayLib::cXObjPack | |
| cXObjPack (cStringF sFilePath, cXObjPackFactory *pFactory) | |
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... | |
Protected Attributes inherited from GrayLib::cXObjPack | |
| cArrayRef< cXObjDef > | m_aLinkedChildren |
| usually cXObjDef is cXObjPackChild. More... | |
Protected Attributes inherited from GrayLib::cXObject | |
| CHEAPOBJECT_IMPL | |
| cRefPtr< cXObjDef > | m_pBaseDef |
| This XObject is based on a template of other XObject/XObjDef. overloads it's props via m_TagMap. More... | |
A plug-in DLL/SO/Module for this app. Similar but not the same as the COM DllRegisterServer function (DllRegisterServer) This can extend the cXObjMgr via IXObjModPlugin. Or extend other GrayLib systems. (e.g. Image,SQL)
| GrayLib::cXObjModule::cXObjModule | ( | const FILECHAR_t * | pszPathName, |
| cXObjModuleFactory * | pFactory, | ||
| HMODULE | hModule | ||
| ) |
Call into the DLL asking it to register all its objects and services. ASSUME the DLL/SO/Module we are calling also shares the same GrayLib we do/are and exposes COSMod_RegisterModuleC.
|
virtual |
|
overridevirtual |
utility
detach my children etc.
Unloading the DLL maybe at normal run time.
Pre-destructor cleanup things can be done since virtuals don't work in destructors.
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.
Reimplemented from GrayLib::cXObjPack.
|
inline |
Associated with cOSModImpl.
|
overridevirtual |
Call the DLL method. Called only from cXObjEventSink
|
inline |
Must be agreed to by all users. sizeof(cXObjModule) for checking alignments of structures. Ensure that some external DLL/SO caller has the same structure packing that we have.
Check cached open of this file. check if it should be closed?
Try to connect to the COSMod_RegisterModuleC for the DLL/SO.
Reimplemented from GrayLib::cXObjPack.
|
overridevirtual |
Reimplemented from GrayLib::cXObjPack.