![]() |
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 |
![]() | |
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) |
![]() | |
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... | |
![]() | |
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 |
![]() | |
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) |
![]() | |
cThreadLockableRef (int iStaticRefCount=0) noexcept | |
virtual | ~cThreadLockableRef () |
virtual void | onThreadLockFail (TIMESYSD_t dwWaitMS) |
![]() | |
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 () |
![]() | |
THREADID_t | get_ThreadLockOwner () const |
![]() | |
virtual | ~CObject () |
virtual void | AssertValid () const |
< memory allocation and structure definitions are valid. More... | |
virtual void | Serialize (cArchive &a) |
![]() | |
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 | |
![]() | |
enum | P_TYPE_ { P_QTY } |
enum | M_TYPE_ { M_QTY } |
typedef cXObject | CSCRIPTABLE_SUPER_t |
![]() | |
enum | P_TYPE_ { P_QTY } |
enum | M_TYPE_ { M_QTY } |
base methods that all objects have. More... | |
![]() | |
static cStringA GRAYCALL | MakeSymNameFromPath (const FILECHAR_t *pszFilePath) |
![]() | |
static cAtomRef GRAYCALL | MakeSymName (const ATOMCHAR_t *pszTypeName, ITERATE_t iEnum) |
![]() | |
static HRESULT GRAYCALL | CopyAllProps (IScriptableSetter *pObjDest, IScriptableEnumerator &rProps, int iStart=0) |
![]() | |
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... | |
![]() | |
CHEAPOBJECT_IMPL | |
TIMESYS_t | m_timeLastUsed |
system time when last used. for caching More... | |
![]() | |
cVarMap | m_TagMap |
attach extra tags here. (e.g. properties that don't apply to all instances. ASSUME NO OVERLAP with defined props.) More... | |
![]() | |
const cVariant & | vArgs = cVariant::k_VarNULL) |
![]() | |
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 cScriptableInterfaceDef | sm_ScriptInterfaceDef |
static cScriptableProp | sm_Props [P_QTY+1] |
static cScriptableMethod | sm_Methods [M_QTY+1] |
![]() | |
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... | |
![]() | |
cXObjPack (cStringF sFilePath, cXObjPackFactory *pFactory) | |
![]() | |
cLockableBase () noexcept | |
~cLockableBase () | |
LONG | get_LockCount () const |
bool | isLocked () const |
void | IncLockCount () |
LONG | DecLockCount () |
void | Lock () |
LONG | Unlock () |
![]() | |
const void * | get_HeapPtr () const noexcept override |
Get the top level (outermost, freeable) class pointer. I can delete get_HeapPtr(). More... | |
![]() | |
cArrayRef< cXObjDef > | m_aLinkedChildren |
usually cXObjDef is cXObjPackChild. More... | |
![]() | |
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.