00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef CYBPROXYC_H
00027 #define CYBPROXYC_H
00028
00029
00030
00031 #include "oaw/misc/stringc.h"
00032 #include "oaw/misc/objectc.h"
00033 #include "../oawconfig.h"
00034
00035 OAW_BEGIN_NAMESPACE
00036
00037
00038 class CybBatchProxyC;
00039 class CybNodeC;
00040 class CybScriptC;
00041 class CybWorldC;
00042 class CybProxyManagerC;
00043
00044 class OAW_DLLMAPPING CybProxyC : public ObjectI
00045 {
00046 public:
00047 CybProxyC(const CybProxyC* pN);
00048 CybProxyC(long,CybScriptC*,CybWorldC* pW);
00049 CybProxyC(const CybProxyC&);
00050 virtual ~CybProxyC();
00051 CybProxyC& operator = (const CybProxyC&);
00052
00053 virtual void* GetImpl(){return this;}
00054 virtual long GetFieldEventID(const char*) const;
00055 virtual short GetFieldData(long ix,void* data) const;
00056 virtual short GetFieldDataByName(const char*,void* data) const;
00057 virtual void SetEvent(long,const void*) const;
00058 virtual void SetEventByName(const char*, const void*) const;
00059 virtual short IsKindOf(long) const;
00060 virtual long GetNodeID() const;
00061 virtual long GetNodeIDProto() const;
00062 virtual long GetFieldDataType(long id) const;
00063
00064 virtual short IsNil() const;
00065 virtual void SetSFNode(const CybProxyC*);
00066 virtual void SetSFNode(const CybProxyC& n);
00067
00068
00069 void SetBatchProxy(CybBatchProxyC* p){m_pBatchProxy = p;}
00070 virtual const char* GetDefName() const;
00071 CybNodeC* GetNode() const {return m_pNode;}
00072 CybScriptC* GetScriptNode() const {return m_pScript;}
00073
00074 void SetNodeByID(long id);
00075 virtual void SharedObjectDestroyed(SharedObjectC*);
00076 virtual short RootIsLinkedAsAUser(ArrayC<SharedObjectC*>&);
00077
00078 protected:
00079 void UpdateNodeRef();
00080 void SetNode(CybNodeC* pN);
00081
00082 protected:
00083
00084 CybNodeC* m_pNode;
00085 long m_nodeID;
00086 CybBatchProxyC* m_pBatchProxy;
00087 CybScriptC* m_pScript;
00088 CybWorldC* m_pWorld;
00089 CybProxyManagerC* m_pProxyMgr;
00090 };
00091
00092 OAW_END_NAMESPACE
00093
00094
00095 #endif
00096
00097
00098
00099
00100