# AutoRPC.h File Reference

Automatically serializing and deserializing RPC system. More advanced RPC, but possibly not cross-platform. More...

`#include "PluginInterface.h"`
`#include "DS_Map.h"`
`#include "PacketPriority.h"`
`#include "RakNetTypes.h"`
`#include "BitStream.h"`

## Namespaces

namespace | RakNet

## Classes

class | RakNet::AutoRPC

## Defines

#define | ARPC_MAX_STACK_SIZE 65536
| Maximum amount of data that can be passed on the stack in a function call.
#define | ARPC_REGISTER_CPP_FUNCTION(autoRPCInstance, _IDENTIFIER_, _RETURN_, _CLASS_, _FUNCTION_, _PARAMS_)

## 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
}

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

## Detailed Description

Automatically serializing and deserializing RPC system. More advanced RPC, but possibly not cross-platform.

This file is part of RakNet Copyright 2003 Kevin Jenkins.

Usage of RakNet is subject to the appropriate license agreement. Creative Commons Licensees are subject to the license found at http://creativecommons.org/licenses/by-nc/2.5/ Single application licensees are subject to the license found at http://www.jenkinssoftware.com/SingleApplicationLicense.html Custom license users are subject to the terms therein. GPL license users are subject to the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

## Define Documentation

#define ARPC_REGISTER_CPP_FUNCTION | ( | autoRPCInstance,
|  | _IDENTIFIER_,
|  | _RETURN_,
|  | _CLASS_,
|  | _FUNCTION_,
|  | _PARAMS_ |  | ) |

Value:

    { \
    union \
    { \
            _RETURN_ (__cdecl _CLASS_::*__memberFunctionPtr)_PARAMS_; \
            void* __voidFunc; \
    }; \
            __memberFunctionPtr=&_CLASS_::_FUNCTION_; \
            (autoRPCInstance)->RegisterFunction(_IDENTIFIER_, __voidFunc, true); \
    }

Easier way to get a pointer to a function member of a C++ class

Parameters:

  `[in]` | autoRPCInstance | A pointer to an instance of AutoRPC
  `[in]` | _IDENTIFIER_ | C string identifier to use on the remote system to call the function
  `[in]` | _RETURN_ | Return value of the function
  `[in]` | _CLASS_ | Base-most class of the containing class that contains your function
  `[in]` | _FUNCTION_ | Name of the function
  `[in]` | _PARAMS_ | Parameter list, include parenthesis