1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-09-19 20:16:10 +08:00
Files
hl2sdk/public/networksystem/inetworkmessages.h

114 lines
4.8 KiB
C
Raw Normal View History

2023-05-03 02:21:57 +03:00
#ifndef NETWORKMESSAGES_H
#define NETWORKMESSAGES_H
#ifdef _WIN32
#pragma once
#endif
#include <eiface.h>
#include <tier1/bitbuf.h>
#include <tier1/utlstring.h>
#include <tier1/utldelegate.h>
#include <tier0/logging.h>
struct NetMessageHandle_t__;
class CSchemaClassBindingBase;
class INetworkSerializerBindingBuildFilter;
class IProtobufBinding;
enum NetworkSerializationMode_t;
struct NetworkableDataType_t;
struct NetworkFieldResult_t;
struct NetworkSerializerInfo_t;
struct NetworkUnserializerInfo_t;
struct NetworkableData_t;
struct NetworkFieldInfo_t;
struct FieldMetaInfo_t;
struct NetworkFieldChangedDelegateType_t;
struct NetworkFieldChangeCallbackPerformType_t;
class CSchemaType;
typedef NetworkFieldResult_t ( *NetworkFieldSerializeCB )(NetworkSerializerInfo_t const&, int, NetworkableData_t *);
typedef NetworkFieldResult_t ( *NetworkFieldUnserializeCB )(NetworkUnserializerInfo_t const&, int, NetworkableData_t *);
typedef NetworkFieldResult_t ( *NetworkFieldSerializeBufferCB )(NetworkSerializerInfo_t const&, bf_write &, int *, void const **, bool);
typedef NetworkFieldResult_t ( *NetworkFieldUnserializeBufferCB )(NetworkUnserializerInfo_t const&, bf_read &, int *, void **, bool, CSchemaClassBindingBase const*);
typedef uint ( *NetworkFieldInfoCB )(NetworkFieldInfo_t const&);
typedef bool ( *NetworkFieldMetaInfoCB )(FieldMetaInfo_t const&, CSchemaClassBindingBase const*, NetworkFieldInfo_t const&, void *);
typedef bool ( *NetworkableDataCB )(NetworkableData_t const*, CUtlString &);
typedef char const* ( *NetworkUnkCB001 )(void);
#define NETWORKMESSAGES_INTERFACE_VERSION "NetworkMessagesVersion001"
abstract_class INetworkMessages
{
public:
virtual void RegisterNetworkCategory(uint, char const *) = 0;
virtual void AssociateNetMessageWithChannelCategoryAbstract(NetMessageHandle_t__ *, uint, bool) = 0;
// virtual void FindOrCreateNetMessageSchema(int, CSchemaClassBindingBase const*, INetworkSerializerBindingBuildFilter *, bool, bool) = 0;
virtual void FindOrCreateNetMessage(int, IProtobufBinding const*, uint, INetworkSerializerBindingBuildFilter *, bool, bool) = 0;
virtual void SerializeAbstract(bf_write &, NetMessageHandle_t__ *, void const *) = 0;
virtual void UnserializeAbstract(bf_read &, NetMessageHandle_t__ **, void **) = 0;
virtual void UnserializeAbstract(bf_read &, NetMessageHandle_t__ *, void *) = 0;
virtual void AllocateNetMessageAbstract(NetMessageHandle_t__ *) = 0;
virtual void AllocateAndCopyConstructNetMessageAbstract(NetMessageHandle_t__ *, void const *) = 0;
virtual void DeallocateNetMessageAbstract(NetMessageHandle_t__ *, void *) = 0;
virtual void RegisterNetworkFieldSerializer(char const *, NetworkSerializationMode_t, NetworkableDataType_t, int, NetworkFieldSerializeCB, NetworkFieldUnserializeCB, NetworkFieldInfoCB,
NetworkFieldMetaInfoCB, NetworkableDataCB, NetworkUnkCB001, NetworkFieldSerializeCB, NetworkFieldUnserializeCB) = 0;
virtual void RegisterNetworkArrayFieldSerializer(char const *, NetworkSerializationMode_t, NetworkFieldSerializeBufferCB, NetworkFieldUnserializeBufferCB, NetworkFieldInfoCB,
NetworkFieldMetaInfoCB, NetworkFieldSerializeBufferCB, NetworkFieldUnserializeBufferCB) = 0;
virtual void GetNetMessageInfo(NetMessageHandle_t__ *) = 0;
virtual NetMessageHandle_t__* FindNetworkMessage(char const *) = 0;
virtual NetMessageHandle_t__* FindNetworkMessagePartial(char const *) = 0;
virtual void FindNetworkGroup(char const *, bool) = 0;
virtual void GetNetworkGroupCount(void) = 0;
virtual void GetNetworkGroupName(int) = 0;
virtual void unk001() = 0;
virtual void AssociateNetMessageGroupIdWithChannelCategory(uint, char const *) = 0;
virtual void RegisterSchemaAtomicTypeOverride(uint, CSchemaType *) = 0;
virtual void SetNextworkSerializationContextData(char const *, NetworkSerializationMode_t, void *) = 0;
virtual void unk002() = 0;
virtual void unk003() = 0;
virtual void RegisterNetworkFieldChangeCallbackInternal(char const *, NetworkFieldChangedDelegateType_t, CUtlAbstractDelegate, NetworkFieldChangeCallbackPerformType_t, int) = 0;
virtual void AllowAdditionalMessageRegistration(bool bAllow) = 0;
virtual bool IsAdditionalMessageRegistrationAllowed() = 0;
virtual void GetFieldChangeCallbackOrderCount(void) = 0;
virtual void GetFieldChangeCallbackPriorities(int, int *) = 0;
virtual void RegisterFieldChangeCallbackPriority(int) = 0;
virtual NetMessageHandle_t__ *FindNetworkMessageById(int) = 0;
virtual void SetIsForServer(bool bForServer) = 0;
virtual bool IsForServer() = 0;
virtual void RegisterSchemaTypeOverride(uint, char const *) = 0;
virtual int ComputeOrderForPriority(int nPriority) = 0;
virtual CLoggingSystem::LoggingChannel_t *GetLoggingChannel() = 0;
virtual ~INetworkMessages() = 0;
};
DECLARE_TIER2_INTERFACE(INetworkMessages, g_pNetworkMessages);
#endif /* NETWORKMESSAGES_H */