diff --git a/src/Common/object_interfaces.h b/src/Common/object_interfaces.h index 4aad4892a42..fcc8dfe7ba6 100644 --- a/src/Common/object_interfaces.h +++ b/src/Common/object_interfaces.h @@ -7,40 +7,65 @@ //////////////////////////////////////////////////////////////////////////// #pragma once +#include "xrCore/xrCore.h" class NET_Packet; +class IReader; +class IWriter; class IPureDestroyableObject { public: - virtual void destroy() = 0; + virtual ~IPureDestroyableObject() = 0; + + virtual void destroy() = 0; }; +IC IPureDestroyableObject::~IPureDestroyableObject() {} + template class IPureLoadableObject { public: + virtual ~IPureLoadableObject() = 0; virtual void load(_storage_type &storage) = 0; }; +template +IC IPureLoadableObject<_storage_type>::~IPureLoadableObject() {} + template class IPureSavableObject { public: + virtual ~IPureSavableObject() = 0; virtual void save(_storage_type &storage) = 0; }; +template +IC IPureSavableObject<_storage_type>::~IPureSavableObject() {} + template class IPureSerializeObject : public IPureLoadableObject<_storage_type_load>, public IPureSavableObject<_storage_type_save> { public: + virtual ~IPureSerializeObject() = 0; }; +template +IC IPureSerializeObject::~IPureSerializeObject() {} + class IPureServerObject : public IPureSerializeObject { public: + virtual ~IPureServerObject() = 0; virtual void STATE_Write (NET_Packet &tNetPacket) = 0; virtual void STATE_Read (NET_Packet &tNetPacket, u16 size) = 0; virtual void UPDATE_Write(NET_Packet &tNetPacket) = 0; virtual void UPDATE_Read (NET_Packet &tNetPacket) = 0; }; +IC IPureServerObject::~IPureServerObject() {} + class IPureSchedulableObject { public: + virtual ~IPureSchedulableObject() = 0; virtual void update () = 0; }; + +IC IPureSchedulableObject::~IPureSchedulableObject() {}