from direct.distributed.ServerRepository import ServerRepository
ServerRepository module: contains the ServerRepository class
- class ServerRepository(tcpPort, serverAddress=None, udpPort=None, dcFileNames=None, threadedNet=None)
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)
This internal class keeps track of the data associated with each connected client.
- __init__(self, connection, netAddress, doIdBase)
- class Object(doId, zoneId, dclass)
This internal class keeps track of the data associated with each extent distributed object.
- __init__(self, doId, zoneId, dclass)
- __init__(self, tcpPort, serverAddress=None, udpPort=None, dcFileNames=None, threadedNet=None)
- clientHardDisconnectTask(self, task)
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)
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)
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).
Returns the current setting of TCP header size. See setTcpHeaderSize().
- handleClientCreateObject(self, datagram, dgi)
client wants to create an object, so we store appropriate data, and then pass message along to corresponding zones
- handleClientDeleteObject(self, datagram, doId)
client deletes an object, let everyone who has interest in the object’s zone know about it.
- handleClientDisconnect(self, client)
- handleClientObjectSetZone(self, datagram, dgi)
The client is telling us the object is changing to a new zone.
- handleClientObjectUpdateField(self, datagram, dgi, targeted=False)
Received an update request from a client.
- handleClientSetInterest(self, client, dgi)
The client is specifying a particular set of zones it is interested in.
- handleDatagram(self, datagram)
switching station for messages
- handleMessageType(self, msgType, di)
- importModule(self, dcImports, moduleName, importSymbols)
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)
- notify = <direct.directnotify.Notifier.Notifier object>
- readDCFile(self, dcFileNames=None)
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.
checks for available messages to the server
- readerPollUntilEmpty(self, task)
continuously polls for new messages on the server
- sendDoIdRange(self, client)
sends the client the range of doid’s that the client can use
- sendToAllExcept(self, datagram, exceptionList)
sends a message to all connected clients, except for clients on exceptionList.
- sendToZoneExcept(self, zoneId, datagram, exceptionList)
sends a message to everyone who has interest in the indicated zone, except for the clients on exceptionList.
- setObjectZone(self, owner, object, zoneId)
- setTcpHeaderSize(self, headerSize)
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)
Something about the client has caused its set of interest zones to potentially change. Recompute them.