# RPC3
[Plugins]

Remote procedure calls, powered by the 3rd party library Boost. More...

## Classes
class | RakNet::RPC3
| The RPC3 plugin allows you to call remote functions as if they were local functions, using the standard function call syntax. More...
## Enumerations
enum | RakNet::RPCErrorCodes { RakNet::RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE, RakNet::RPC_ERROR_OBJECT_DOES_NOT_EXIST, RakNet::RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE, RakNet::RPC_ERROR_FUNCTION_NOT_REGISTERED, RakNet::RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED, RakNet::RPC_ERROR_CALLING_CPP_AS_C, RakNet::RPC_ERROR_CALLING_C_AS_CPP, RakNet::RPC_ERROR_STACK_TOO_SMALL, RakNet::RPC_ERROR_STACK_DESERIALIZATION_FAILED, RakNet::RPC_ERROR_INCORRECT_NUMBER_OF_PARAMETERS, RakNet::RPC_ERROR_FUNCTION_NOT_REGISTERED, RakNet::RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE, RakNet::RPC_ERROR_OBJECT_DOES_NOT_EXIST, RakNet::RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE, RakNet::RPC_ERROR_FUNCTION_NOT_REGISTERED, RakNet::RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED, RakNet::RPC_ERROR_CALLING_CPP_AS_C, RakNet::RPC_ERROR_CALLING_C_AS_CPP }
| Error codes returned by a remote system as to why an RPC function call cannot execute. More...

## Detailed Description

Remote procedure calls, powered by the 3rd party library Boost.

## Enumeration Type Documentation

enum RakNet::RPCErrorCodes

Error codes returned by a remote system as to why an RPC function call cannot execute.

Error code follows packet ID ID_RPC_REMOTE_ERROR, that is packet->data[1]
Name of the function will be appended starting at packet->data[2]

Enumerator:

  RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE | AutoRPC::SetNetworkIDManager() was not called, and it must be called to call a C++ object member. RPC3::SetNetworkIDManager() was not called, and it must be called to call a C++ object member.
  RPC_ERROR_OBJECT_DOES_NOT_EXIST | Cannot execute C++ object member call because the object specified by SetRecipientObject() does not exist on this system.
  RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE | Internal error, index optimization for function lookup does not exist.
  RPC_ERROR_FUNCTION_NOT_REGISTERED | Named function was not registered with RegisterFunction(). Check your spelling.
  RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED | Named function was registered, but later unregistered with UnregisterFunction() and can no longer be called.
  RPC_ERROR_CALLING_CPP_AS_C | SetRecipientObject() was not called before Call(), but RegisterFunction() was called with isObjectMember=true If you intended to call a CPP function, call SetRecipientObject() with a valid object first. SetRecipientObject() was not called before Call(), but the registered pointer is a class member If you intended to call a class member function, call SetRecipientObject() with a valid object first.
  RPC_ERROR_CALLING_C_AS_CPP | SetRecipientObject() was called before Call(), but RegisterFunction() was called with isObjectMember=false If you intended to call a C function, call SetRecipientObject(UNASSIGNED_NETWORK_ID) first.
  RPC_ERROR_STACK_TOO_SMALL | Internal error, passed stack is bigger than current stack. Check that the version is the same on both systems.
  RPC_ERROR_STACK_DESERIALIZATION_FAILED | Internal error, formatting error with how the stack was serialized.
  RPC_ERROR_INCORRECT_NUMBER_OF_PARAMETERS | The parameterCount parameter passed to RegisterFunction() on this system does not match the parameterCount parameter passed to SendCall() on the remote system.
  RPC_ERROR_FUNCTION_NOT_REGISTERED | Named function was not registered with RegisterFunction(). Check your spelling.
  RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE | AutoRPC::SetNetworkIDManager() was not called, and it must be called to call a C++ object member. RPC3::SetNetworkIDManager() was not called, and it must be called to call a C++ object member.
  RPC_ERROR_OBJECT_DOES_NOT_EXIST | Cannot execute C++ object member call because the object specified by SetRecipientObject() does not exist on this system.
  RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE | Internal error, index optimization for function lookup does not exist.
  RPC_ERROR_FUNCTION_NOT_REGISTERED | Named function was not registered with RegisterFunction(). Check your spelling.
  RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED | Named function was registered, but later unregistered with UnregisterFunction() and can no longer be called.
  RPC_ERROR_CALLING_CPP_AS_C | SetRecipientObject() was not called before Call(), but RegisterFunction() was called with isObjectMember=true If you intended to call a CPP function, call SetRecipientObject() with a valid object first. SetRecipientObject() was not called before Call(), but the registered pointer is a class member If you intended to call a class member function, call SetRecipientObject() with a valid object first.
  RPC_ERROR_CALLING_C_AS_CPP | SetRecipientObject() was called before Call(), but RegisterFunction() was called with isObjectMember=false If you intended to call a C function, call SetRecipientObject(UNASSIGNED_NETWORK_ID) first.