direct.distributed.ServerRepository

from direct.distributed.ServerRepository import ServerRepository

ServerRepository module: contains the ServerRepository class

Inheritance diagram

Inheritance diagram of direct.distributed.ServerRepository

class ServerRepository(tcpPort, serverAddress=None, udpPort=None, dcFileNames=None, threadedNet=None)[source]

Bases: object

This maintains the server-side connection with a Panda server. It is only for use with the Panda LAN server provided by CMU.

class Client(connection, netAddress, doIdBase)[source]

Bases: object

This internal class keeps track of the data associated with each connected client.

__init__(self, connection, netAddress, doIdBase)[source]
class Object(doId, zoneId, dclass)[source]

Bases: object

This internal class keeps track of the data associated with each extent distributed object.

__init__(self, doId, zoneId, dclass)[source]
__init__(self, tcpPort, serverAddress=None, udpPort=None, dcFileNames=None, threadedNet=None)[source]
clientHardDisconnectTask(self, task)[source]

client did not tell us he was leaving but we lost connection to him, so we need to update our data and tell others

flushTask(self, task)[source]

This task is run periodically to flush any connections that might need it. It’s only necessary in cases where collect-tcp is set true (if this is false, messages are sent immediately and do not require periodic flushing).

getDoIdBase(self, doId)[source]

Given a doId, return the corresponding doIdBase. This will be the owner of the object (clients may only create object doId’s within their assigned range).

getTcpHeaderSize(self)[source]

Returns the current setting of TCP header size. See setTcpHeaderSize().

handleClientCreateObject(self, datagram, dgi)[source]

client wants to create an object, so we store appropriate data, and then pass message along to corresponding zones

handleClientDeleteObject(self, datagram, doId)[source]

client deletes an object, let everyone who has interest in the object’s zone know about it.

handleClientDisconnect(self, client)[source]
handleClientObjectSetZone(self, datagram, dgi)[source]

The client is telling us the object is changing to a new zone.

handleClientObjectUpdateField(self, datagram, dgi, targeted=False)[source]

Received an update request from a client.

handleClientSetInterest(self, client, dgi)[source]

The client is specifying a particular set of zones it is interested in.

handleDatagram(self, datagram)[source]

switching station for messages

handleMessageType(self, msgType, di)[source]
importModule(self, dcImports, moduleName, importSymbols)[source]

Imports the indicated moduleName and all of its symbols into the current namespace. This more-or-less reimplements the Python import command.

listenerPoll(self, task)[source]
notify = <direct.directnotify.Notifier.Notifier object>
readDCFile(self, dcFileNames=None)[source]

Reads in the dc files listed in dcFileNames, or if dcFileNames is None, reads in all of the dc files listed in the Configrc file.

readerPollOnce(self)[source]

checks for available messages to the server

readerPollUntilEmpty(self, task)[source]

continuously polls for new messages on the server

sendDoIdRange(self, client)[source]

sends the client the range of doid’s that the client can use

sendToAllExcept(self, datagram, exceptionList)[source]

sends a message to all connected clients, except for clients on exceptionList.

sendToZoneExcept(self, zoneId, datagram, exceptionList)[source]

sends a message to everyone who has interest in the indicated zone, except for the clients on exceptionList.

setObjectZone(self, owner, object, zoneId)[source]
setTcpHeaderSize(self, headerSize)[source]

Sets the header size of TCP packets. At the present, legal values for this are 0, 2, or 4; this specifies the number of bytes to use encode the datagram length at the start of each TCP datagram. Sender and receiver must independently agree on this.

updateClientInterestZones(self, client)[source]

Something about the client has caused its set of interest zones to potentially change. Recompute them.