C# Class Universe.ClientStack.LLUDPServer

The LLUDP server for a region. This handles incoming and outgoing packets for all UDP connections to the region
Inheritance: UDPBase, IClientNetworkServer
Show file Open project: Virtual-Universe/Virtual-Universe Class Usage Examples

Public Properties

Property Type Description
AvatarUpdatesPerCallBack int
ClientTimeOut int
PacketLog PacketLogger
PrimUpdatesPerCallback int
TextureSendLimit int
TickCountResolution float
m_circuitManager Universe.Framework.SceneInfo.AgentCircuitManager
m_scene IScene

Protected Properties

Property Type Description
m_shouldCollectStats bool
m_throttle TokenBucket
m_throttleRates ThrottleRates

Public Methods

Method Description
AddClient ( uint circuitCode, UUID agentID, UUID sessionID, IPEndPoint remoteEndPoint, AgentCircuitData sessionInfo ) : bool
AddScene ( IScene scene ) : void
BroadcastPacket ( Packet packet, ThrottleOutPacketType category, bool sendToPausedAgents, bool allowSplitting, UnackedPacketMethod resendMethod, UnackedPacketMethod finishedMethod ) : void
ClientOutgoingPacketHandler ( IClientAPI client ) : void
CloseThreadPool ( ) : void
CompletePing ( LLUDPClient udpClient, byte pingID ) : void
Copy ( ) : IClientNetworkServer
FireAndForget ( Action callback, object obj ) : void
Flush ( LLUDPClient udpClient ) : void
ForEachInternalClient ( Action action ) : void
HandleUseCircuitCode ( object o ) : void
InitThreadPool ( int maxThreads ) : void
Initialize ( uint port, IConfigSource configSource, AgentCircuitManager circuitManager ) : void
LogPacketHeader ( bool incoming, uint circuit, byte flags, PacketType packetType, ushort size ) : void
ProcessInPacket ( object state ) : void
RemoveClient ( IClientAPI client ) : void
RemoveClient ( LLUDPClient udpClient ) : void
ResendUnacked ( LLUDPClient udpClient ) : void
SendAckImmediate ( IPEndPoint remoteEndpoint, uint sequenceNumber ) : void
SendAcks ( LLUDPClient udpClient ) : void
SendPacket ( LLUDPClient udpClient, Packet packet, ThrottleOutPacketType category, bool allowSplitting, UnackedPacketMethod resendMethod, UnackedPacketMethod finishedMethod ) : void
SendPacketData ( LLUDPClient udpClient, byte data, Packet packet, ThrottleOutPacketType category, UnackedPacketMethod resendMethod, UnackedPacketMethod finishedMethod ) : void
SendPing ( LLUDPClient udpClient ) : void
Start ( ) : void
Stop ( ) : void
UpdatePort ( uint port ) : void

Protected Methods

Method Description
LogoutHandler ( IClientAPI client ) : void
PacketReceived ( UDPPacketBuffer buffer ) : void

Private Methods

Method Description
IncomingPacketHandlerLoop ( ) : bool
IsClientAuthorized ( UseCircuitCodePacket useCircuitCode, IPEndPoint remoteEndPoint, AgentCircuitData &sessionInfo ) : bool
OutgoingPacketHandlerLoop ( ) : bool
SendPacketFinal ( OutgoingPacket outgoingPacket ) : void

Actually send a packet to a client.

SmartThreadPoolCallback ( object o ) : object

Method Details

AddClient() public method

public AddClient ( uint circuitCode, UUID agentID, UUID sessionID, IPEndPoint remoteEndPoint, AgentCircuitData sessionInfo ) : bool
circuitCode uint
agentID UUID
sessionID UUID
remoteEndPoint System.Net.IPEndPoint
sessionInfo Universe.Framework.PresenceInfo.AgentCircuitData
return bool

AddScene() public method

public AddScene ( IScene scene ) : void
scene IScene
return void

BroadcastPacket() public method

public BroadcastPacket ( Packet packet, ThrottleOutPacketType category, bool sendToPausedAgents, bool allowSplitting, UnackedPacketMethod resendMethod, UnackedPacketMethod finishedMethod ) : void
packet OpenMetaverse.Packets.Packet
category ThrottleOutPacketType
sendToPausedAgents bool
allowSplitting bool
resendMethod UnackedPacketMethod
finishedMethod UnackedPacketMethod
return void

ClientOutgoingPacketHandler() public method

public ClientOutgoingPacketHandler ( IClientAPI client ) : void
client IClientAPI
return void

CloseThreadPool() public method

public CloseThreadPool ( ) : void
return void

CompletePing() public method

public CompletePing ( LLUDPClient udpClient, byte pingID ) : void
udpClient LLUDPClient
pingID byte
return void

Copy() public method

public Copy ( ) : IClientNetworkServer
return IClientNetworkServer

FireAndForget() public method

public FireAndForget ( Action callback, object obj ) : void
callback Action
obj object
return void

Flush() public method

public Flush ( LLUDPClient udpClient ) : void
udpClient LLUDPClient
return void

ForEachInternalClient() public method

public ForEachInternalClient ( Action action ) : void
action Action
return void

HandleUseCircuitCode() public method

public HandleUseCircuitCode ( object o ) : void
o object
return void

InitThreadPool() public method

public InitThreadPool ( int maxThreads ) : void
maxThreads int
return void

Initialize() public method

public Initialize ( uint port, IConfigSource configSource, AgentCircuitManager circuitManager ) : void
port uint
configSource IConfigSource
circuitManager Universe.Framework.SceneInfo.AgentCircuitManager
return void

LogPacketHeader() public static method

public static LogPacketHeader ( bool incoming, uint circuit, byte flags, PacketType packetType, ushort size ) : void
incoming bool
circuit uint
flags byte
packetType PacketType
size ushort
return void

LogoutHandler() protected method

protected LogoutHandler ( IClientAPI client ) : void
client IClientAPI
return void

PacketReceived() protected method

protected PacketReceived ( UDPPacketBuffer buffer ) : void
buffer UDPPacketBuffer
return void

ProcessInPacket() public method

public ProcessInPacket ( object state ) : void
state object
return void

RemoveClient() public method

public RemoveClient ( IClientAPI client ) : void
client IClientAPI
return void

RemoveClient() public method

public RemoveClient ( LLUDPClient udpClient ) : void
udpClient LLUDPClient
return void

ResendUnacked() public method

public ResendUnacked ( LLUDPClient udpClient ) : void
udpClient LLUDPClient
return void

SendAckImmediate() public method

public SendAckImmediate ( IPEndPoint remoteEndpoint, uint sequenceNumber ) : void
remoteEndpoint System.Net.IPEndPoint
sequenceNumber uint
return void

SendAcks() public method

public SendAcks ( LLUDPClient udpClient ) : void
udpClient LLUDPClient
return void

SendPacket() public method

public SendPacket ( LLUDPClient udpClient, Packet packet, ThrottleOutPacketType category, bool allowSplitting, UnackedPacketMethod resendMethod, UnackedPacketMethod finishedMethod ) : void
udpClient LLUDPClient
packet OpenMetaverse.Packets.Packet
category ThrottleOutPacketType
allowSplitting bool
resendMethod UnackedPacketMethod
finishedMethod UnackedPacketMethod
return void

SendPacketData() public method

public SendPacketData ( LLUDPClient udpClient, byte data, Packet packet, ThrottleOutPacketType category, UnackedPacketMethod resendMethod, UnackedPacketMethod finishedMethod ) : void
udpClient LLUDPClient
data byte
packet OpenMetaverse.Packets.Packet
category ThrottleOutPacketType
resendMethod UnackedPacketMethod
finishedMethod UnackedPacketMethod
return void

SendPing() public method

public SendPing ( LLUDPClient udpClient ) : void
udpClient LLUDPClient
return void

Start() public method

public Start ( ) : void
return void

Stop() public method

public Stop ( ) : void
return void

UpdatePort() public method

public UpdatePort ( uint port ) : void
port uint
return void

Property Details

AvatarUpdatesPerCallBack public property

Number of avatar update packets to put on the queue each time the OnQueueEmpty event is triggered
public int AvatarUpdatesPerCallBack
return int

ClientTimeOut public property

public int ClientTimeOut
return int

PacketLog public static property

public static PacketLogger PacketLog
return PacketLogger

PrimUpdatesPerCallback public property

Number of prim updates to put on the queue each time the OnQueueEmpty event is triggered for updates
public int PrimUpdatesPerCallback
return int

TextureSendLimit public property

Number of texture packets to put on the queue each time the OnQueueEmpty event is triggered for textures
public int TextureSendLimit
return int

TickCountResolution public property

The measured resolution of Environment.TickCount
public float TickCountResolution
return float

m_circuitManager public property

Manages authentication for agent circuits
public AgentCircuitManager,Universe.Framework.SceneInfo m_circuitManager
return Universe.Framework.SceneInfo.AgentCircuitManager

m_scene public property

Reference to the scene this UDP server is attached to
public IScene m_scene
return IScene

m_shouldCollectStats protected static property

protected static bool m_shouldCollectStats
return bool

m_throttle protected property

Bandwidth throttle for this UDP server
protected TokenBucket m_throttle
return TokenBucket

m_throttleRates protected property

Bandwidth throttle rates for this UDP server
protected ThrottleRates,Universe.ClientStack m_throttleRates
return ThrottleRates