00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __RO_REGISTRYBLOCK_H__
00012 #define __RO_REGISTRYBLOCK_H__
00013 #include "RNPlatform/Inc/DLLExportAPI.h"
00014
00015 namespace RNReplicaNet
00016 {
00017
00018 class ReplicaObject;
00019
00023 typedef ReplicaObject *p_RO_Func(void);
00024 typedef void p_RO_FuncDelete(ReplicaObject *);
00025
00029 struct REPLICANETDLL_API s_RO_RegistryBlock
00030 {
00031 public:
00039 s_RO_RegistryBlock(int id,p_RO_Func *pfunc,p_RO_FuncDelete *pfunc_delete,const char *name = 0);
00040
00045 int GetClassID(void);
00046
00051 ReplicaObject *CallBackAllocate(void);
00052
00057 void CallBackDelete(ReplicaObject *object);
00058
00064 const char *GetName(void) const;
00065
00066 private:
00067 int mID;
00068 p_RO_Func *mFunc;
00069 p_RO_FuncDelete *mFuncDelete;
00070 const char *mName;
00071 };
00072
00073 }
00074
00075 #endif