Forwards UDP datagrams. Independent of RakNet's protocol.
#include <UDPForwarder.h>
List of all members.
Classes |
| struct | ForwardEntry |
| struct | SrcAndDest |
| struct | ThreadOperation |
Public Member Functions |
| UDPForwarderResult | AddForwardingEntry (SrcAndDest srcAndDest, RakNet::TimeMS timeoutOnNoDataMS, unsigned short *port, const char *forceHostAddress, short socketFamily) |
| int | GetMaxForwardEntries (void) const |
| int | GetUsedForwardEntries (void) const |
| void | SetMaxForwardEntries (unsigned short maxEntries) |
| void | Shutdown (void) |
| | Stops the system, and frees all sockets.
|
| UDPForwarderResult | StartForwarding (SystemAddress source, SystemAddress destination, RakNet::TimeMS timeoutOnNoDataMS, const char *forceHostAddress, unsigned short socketFamily, unsigned short *forwardingPort, SOCKET *forwardingSocket) |
| UDPForwarderResult | StartForwardingThreaded (SystemAddress source, SystemAddress destination, RakNet::TimeMS timeoutOnNoDataMS, const char *forceHostAddress, unsigned short socketFamily, unsigned short *forwardingPort, SOCKET *forwardingSocket) |
| void | Startup (void) |
| void | StopForwarding (SystemAddress source, SystemAddress destination) |
| void | StopForwardingThreaded (SystemAddress source, SystemAddress destination) |
| | UDPForwarder () |
| void | Update (void) |
| void | UpdateThreaded_Old (void) |
| | ~UDPForwarder () |
Public Attributes |
DataStructures::Multilist
< ML_ORDERED_LIST,
ForwardEntry *, SrcAndDest > | forwardList |
| bool | isRunning |
| unsigned short | maxForwardEntries |
| short | socketFamily |
| SimpleMutex | threadOperationIncomingMutex |
DataStructures::Queue
< ThreadOperation > | threadOperationIncomingQueue |
| SimpleMutex | threadOperationOutgoingMutex |
DataStructures::Queue
< ThreadOperation > | threadOperationOutgoingQueue |
| bool | threadRunning |
Detailed Description
Definition at line 43 of file UDPForwarder.h.
Constructor & Destructor Documentation
| RakNet::UDPForwarder::UDPForwarder |
( |
| ) |
|
| RakNet::UDPForwarder::~UDPForwarder |
( |
| ) |
|
Member Function Documentation
| int RakNet::UDPForwarder::GetMaxForwardEntries |
( |
void |
| ) |
const |
| int RakNet::UDPForwarder::GetUsedForwardEntries |
( |
void |
| ) |
const |
- Note:
- Each call to StartForwarding uses up two forwarding entries, since communications are bidirectional
- Returns:
- How many entries have been used
| void RakNet::UDPForwarder::SetMaxForwardEntries |
( |
unsigned short |
maxEntries | ) |
|
Sets the maximum number of forwarding entries allowed Set according to your available bandwidth and the estimated average bandwidth per forwarded address. A single connection requires 2 entries, as connections are bi-directional.
- Parameters:
-
| [in] | maxEntries | The maximum number of simultaneous forwarding entries. Defaults to 64 (32 connections) |
| void RakNet::UDPForwarder::Shutdown |
( |
void |
| ) |
|
- Parameters:
-
| [out] | forwardingPort | New opened port for forwarding |
| [out] | forwardingSocket | New opened socket for forwarding |
- Returns:
- UDPForwarderResult
| void RakNet::UDPForwarder::Startup |
( |
void |
| ) |
|
Starts the system. Required to call before StartForwarding
No longer forward datagrams from source to destination
- Parameters:
-
| [in] | source | The source IP and port |
| [in] | destination | Where to forward to |
| void RakNet::UDPForwarder::Update |
( |
void |
| ) |
|
Call on a regular basis, unless using UDP_FORWARDER_EXECUTE_THREADED. Will call select__() on all sockets and forward messages.
| void RakNet::UDPForwarder::UpdateThreaded_Old |
( |
void |
| ) |
|
Member Data Documentation
Forwards datagrams from source to destination, and vice-versa Does nothing if this forward entry already exists via a previous call
- Precondition:
- Call Startup()
- Note:
- RakNet's protocol will ensure a message is sent at least every 15 seconds, so if routing RakNet messages, it is a reasonable value for timeoutOnNoDataMS, plus an some extra seconds for latency
- Parameters:
-
| [in] | source | The source IP and port |
| [in] | destination | Where to forward to (and vice-versa) |
| [in] | timeoutOnNoDataMS | If no messages are forwarded for this many MS, then automatically remove this entry. Currently hardcoded to UDP_FORWARDER_MAXIMUM_TIMEOUT (else the call fails) |
| [in] | forceHostAddress | Force binding on a particular address. 0 to use any. |
| [in] | socketFamily | IP version: For IPV4, use AF_INET (default). For IPV6, use AF_INET6. To autoselect, use AF_UNSPEC. |
Definition at line 82 of file UDPForwarder.h.
The documentation for this class was generated from the following file: