SA-MP/raknet/RPCNode.h
2024-01-12 22:50:53 +08:00

40 lines
983 B
C

// TODO: Implement RPCNode.h
#ifndef __RPC_NODE
#define __RPC_NODE
#include "NetworkTypes.h"
#include "Export.h"
/// \defgroup RAKNET_RPC Remote Procedure Call Subsystem
/// \brief A system to call C or object member procudures on other systems, and even to return return values.
/// \ingroup RAKNET_RPC
/// \internal
///
/// \brief Map registered procedure inside of a peer.
///
struct RAK_DLL_EXPORT RPCNode
{
/// String identifier of the RPC
unsigned char uniqueIdentifier;
/// Force casting of member functions to void *
union
{
void ( *staticFunctionPointer ) ( RPCParameters *rpcParms );
#if (defined(__GNUC__) || defined(__GCCXML__))
void (*memberFunctionPointer)(void* _this, RPCParameters *rpcParms);
#else
void (__cdecl *memberFunctionPointer)(void* _this, RPCParameters *rpcParms);
#endif
void *functionPointer;
};
/// Is this a member function pointer? True if so. If false it's a regular C function.
bool isPointerToMember;
};
#endif