Panda3D

- Main Page
- Packages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Public Attributes | Static Public Attributes

# ServerRepository Class Reference

List of all members.

## Classes
class | Client
class | Object
## Public Member Functions
def | __init__
def | clientHardDisconnectTask
def | flushTask
def | getDoIdBase
def | getTcpHeaderSize
def | handleClientCreateObject
def | handleClientDeleteObject
def | handleClientDisconnect
def | handleClientObjectSetZone
def | handleClientObjectUpdateField
def | handleClientSetInterest
def | handleDatagram
def | handleMessageType
def | importModule
def | listenerPoll
def | readDCFile
def | readerPollOnce
def | readerPollUntilEmpty
def | sendDoIdRange
def | sendToAllExcept
def | sendToZoneExcept
def | setObjectZone
def | setTcpHeaderSize
def | updateClientInterestZones
## Public Attributes
| clientsByConnection
| clientsByDoIdBase
| cw
| dcFile
| dclassesByName
| dclassesByNumber
| dcSuffix
| doIdRange
| hashVal
| idAllocator
| lastConnection
| needsFlush
| objectsByZoneId
| qcl
| qcm
| qcr
| tcpRendezvous
| zonesToClients
## Static Public Attributes
tuple | notify = DirectNotifyGlobal.directNotify.newCategory("ServerRepository")

## Detailed Description

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

## Constructor & Destructor Documentation

def __init__ | ( |  | self,
|  |  | tcpPort,
|  |  | serverAddress = `None`,
|  |  | udpPort = `None`,
|  |  | dcFileNames = `None`,
|  |  | threadedNet = `None`
| ) |  |

## Member Function Documentation

def 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

def 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).

def 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).

def getTcpHeaderSize | ( |  | self | ) |

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

def handleClientCreateObject | ( |  | self,
|  |  | datagram,
|  |  | dgi
| ) |  |

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

def handleClientDeleteObject | ( |  | self,
|  |  | datagram,
|  |  | doId
| ) |  |

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

def handleClientDisconnect | ( |  | self,
|  |  | client
| ) |  |

def handleClientObjectSetZone | ( |  | self,
|  |  | datagram,
|  |  | dgi
| ) |  |

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

def handleClientObjectUpdateField | ( |  | self,
|  |  | datagram,
|  |  | dgi,
|  |  | targeted = `False`
| ) |  |

    Received an update request from a client.

def handleClientSetInterest | ( |  | self,
|  |  | client,
|  |  | dgi
| ) |  |

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

def handleDatagram | ( |  | self,
|  |  | datagram
| ) |  |

    switching station for messages

def handleMessageType | ( |  | self,
|  |  | msgType,
|  |  | di
| ) |  |

def 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.

def listenerPoll | ( |  | self,
|  |  | task
| ) |  |

def 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.

def readerPollOnce | ( |  | self | ) |

    checks for available messages to the server

def readerPollUntilEmpty | ( |  | self,
|  |  | task
| ) |  |

    continuously polls for new messages on the server

def sendDoIdRange | ( |  | self,
|  |  | client
| ) |  |

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

def sendToAllExcept | ( |  | self,
|  |  | datagram,
|  |  | exceptionList
| ) |  |

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

def sendToZoneExcept | ( |  | self,
|  |  | zoneId,
|  |  | datagram,
|  |  | exceptionList
| ) |  |

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

def setObjectZone | ( |  | self,
|  |  | owner,
|  |  | object,
|  |  | zoneId
| ) |  |

def 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.

def updateClientInterestZones | ( |  | self,
|  |  | client
| ) |  |

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

## Member Data Documentation

clientsByConnection

clientsByDoIdBase

cw

dcFile

dclassesByName

dclassesByNumber

dcSuffix

doIdRange

hashVal

idAllocator

lastConnection

needsFlush

tuple notify = DirectNotifyGlobal.directNotify.newCategory("ServerRepository")`[static]`

objectsByZoneId

qcl

qcm

qcr

tcpRendezvous

zonesToClients

All Classes Namespaces Functions Variables Enumerations Enumerator Properties