You.i Engine
YiBindingImplementation.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_BINDING_IMPLEMENTATION_H_
3 #define _YI_BINDING_IMPLEMENTATION_H_
4 
6 #include "utility/YiRtti.h"
7 
10 
28 {
29 public:
31  virtual ~CYIBindingImplementation();
32 
38  virtual void CreateNewScriptObject(CYIBindingContext *pContext, CYIScriptableObject *pScriptableObject, void *pScriptObjectPointer) = 0;
39 
45  virtual void CreateNewScriptObject(CYIBindingContext *pContext, std::shared_ptr<CYIScriptableObject> pScriptableObject, void *pScriptObjectPointer) = 0;
46 
57  virtual void SetIsRooted(bool bIsRooted);
58 
64  virtual bool IsRooted() const;
65 
74  void BreakObjectLink();
75 
82 
88  const std::shared_ptr<CYIScriptableObject> &GetSharedPtr();
89 
93  std::unique_ptr<CYIScriptableObject> TakeUniquePtr();
94 
98  void *GetScriptObject();
99 
104 
108  void SetBindingContext(CYIBindingContext *pBindingContext);
109 
120  void SetIsStrongLink(bool bIsStrong);
121 
127  bool IsStrongLink() const;
128 
129 protected:
135  std::shared_ptr<CYIScriptableObject> m_pScriptableObjectSharedPtr;
136 
137 private:
138  bool m_bIsStrong;
139  bool m_bIsRooted;
140 };
141 
146 #endif
CYIBindingContext * GetBindingContext()
void SetIsStrongLink(bool bIsStrong)
void SetBindingContext(CYIBindingContext *pBindingContext)
CYIScriptableObject * m_pScriptableObject
Definition: YiBindingImplementation.h:134
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
virtual ~CYIBindingImplementation()
virtual void CreateNewScriptObject(CYIBindingContext *pContext, CYIScriptableObject *pScriptableObject, void *pScriptObjectPointer)=0
CYIBindingContext * m_pBindingContext
Definition: YiBindingImplementation.h:132
CYIString m_TemplateName
Definition: YiBindingImplementation.h:130
The base class for an object accessible from script source code.
Definition: YiScriptableObject.h:28
CYIScriptableObject * GetScriptableObject()
const std::shared_ptr< CYIScriptableObject > & GetSharedPtr()
CYIString m_TemplateNamespace
Definition: YiBindingImplementation.h:131
bool IsStrongLink() const
virtual bool IsRooted() const
void * m_pScriptObjectPointer
Definition: YiBindingImplementation.h:133
The base class where binding occurs between C++ and another language.
Definition: YiBindingImplementation.h:27
virtual void SetIsRooted(bool bIsRooted)
The entry point for executing script source code in You.i Engine.
Definition: YiBindingContext.h:29
std::shared_ptr< CYIScriptableObject > m_pScriptableObjectSharedPtr
Definition: YiBindingImplementation.h:135
Definition: YiSignalHandler.h:174
std::unique_ptr< CYIScriptableObject > TakeUniquePtr()
This file contains the classes and macros used to implement RTTI in You.i Engine. ...