Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cScriptContextObj.h
Go to the documentation of this file.
1 //
5 //
6 
7 #ifndef _INC_cScriptContextObj_H
8 #define _INC_cScriptContextObj_H
9 #ifndef NO_PRAGMA_ONCE
10 #pragma once
11 #endif
12 
13 #include "cScriptContext.h"
14 #include "../XObject/cXObjDef.h"
15 
16 namespace GrayLib
17 {
19 
20  class cScriptContextObj;
22 
24  {
29 
30  typedef cXObject SUPER_t;
31  private:
32  cScriptContext* m_pContextExec;
33  static cScriptContextObjPtr sm_pExecObjCur;
34  public:
35  CSCRIPT_CLASS_DEF2(ScriptContextObj, cScriptContext);
36  public:
37  cScriptContextObj( cScriptContext* pContextExec );
38  virtual ~cScriptContextObj();
39 
40  STDMETHOD(s_Invoke)( const cScriptableMethod* pMethod, const cVariant& vArgs, cVariant& vValRet ) override;
41 
43  {
45  if ( m_pContextExec != nullptr ) // a hard assigned context ?
46  return m_pContextExec;
47  return cScriptContextMgr::GetContextCurrent(); // just use the current or default context.
48  }
49  static cScriptContextObjPtr GRAYCALL get_ContextObjCur();
50 
52  };
53 }
54 #endif // _INC_cScriptContextObj_H
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
#define CSCRIPT_CLASS_DEF2(TYPE, _BASETYPE)
Definition: cScriptableInterface.h:286
static cScriptContext *GRAYCALL GetContextCurrent()
Definition: cScriptContext.cpp:316
Definition: cScriptContextObj.h:24
UNITTEST_FRIEND(cScriptContextObj)
cScriptContext * get_ContextCurrent() const
Definition: cScriptContextObj.h:42
Definition: cScriptContext.h:24
Definition: cScriptableInterface.h:97
Definition: cVariant.h:26
Definition: cXObject.h:78
Definition: cRefPtr.h:225
Definition: cMesh.h:22
cRefPtr< cScriptContextObj > cScriptContextObjPtr
Definition: cScriptContextObj.h:20
UNITTEST2_PREDEF(cQuadtree)