| Home >> All >> org >> vrspace >> [ server Javadoc ] |
| | org.vrspace.server.command.* (15) | | org.vrspace.server.command.Administrator.* (4) |
| | org.vrspace.server.db.* (7) | | org.vrspace.server.filter.* (8) |
| | org.vrspace.server.object.* (18) |
org.vrspace.server: Javadoc index of package org.vrspace.server.
Package Samples:
org.vrspace.server.object
org.vrspace.server.command.Administrator
org.vrspace.server.command
org.vrspace.server.db
org.vrspace.server.filter
Classes:
SQLDB: DB store objects by storing all public fields: all primitive types and primitive arrays (java.lang.String, java.net.URL and java.util.Date are considered as primitive) all objects and object arrays that are contained inside object (recursive) Requirements and restrictions: every object that will be stored in DB must have defined "public long db_id" field (or must inherit from class that have db_id field) objects that have encapsulated data - private fields and get/set methods for retrieving/storing that fields can't be stored correctly! This is common for JDK classes - that classes can be stored ...
VRObject: Generic VRObject class. Defines event forwarding, does not check nor set actual field value. Subclasses should override setValue() method to implement different behavior, i.e. store object to database and/or forward events. NOTES: - set_* (see setField()) method may access both Client and Dispatcher via Request - before invoking set_*, request may forwarded to all the Observers, depending on sendEvent()/setValue() implementation - along with request, other Clients (Observers) get reference to originating Client - TAKE CARE of public variables !!! - this way, clients may send requests (Client.update()) ...
AuthInfo: This class encapsulates authentication information: - login name - password - client ID (class and it within the class) - classpath used for commands - objects owned by this client NOTE: All fields are public to enable database storage. Take care not to pass AuthInfo to any objects! What if an object creates an AuthInfo and stores it?
Transform: Transform is basic object used to build the scene. This is a point in space containing other objects, and transformations applied to them. Concept taken from VRML97 NOTE: all fields are public, to enable the database storage. What are security implications?
VRObjectFilter: VRObject filters are used to eliminate objects not needed in the scene. In order to allow the scene to add and remove filters properly, filters must implement equals() method. I.e. ActiveClientFilter returns true if Client.isActive() returns true. Thus, each instance of this filter is equal to any other - performs same operation.
Scene: This keeps track of objects visible to the Client. This scene uses coordinates to determine which objects are in range . Scene is updated when client moves more than resolution meters, or when timeout occurs. It also has some basic filtering capabilities - not tested.
setAll: Syntax: setAll className destField srcField For all members of className , sets field destField to value of srcField . If fields are not of the same class, destField must have constructor which takes class of srcField as a parameter. Intended for migration.
SQLClass: SQLClass is class whose objects describe classes that will be stored in db. Object of this class store information about class itself and class fields. Fields desribed are only public fields declared in that class, not fields declared in superclasses of this class.
upload: Request format: upload className path className is expected to be File or one of its subclasses. The command creates a new instance of className in the database with name equal to path. Then it calls set_upload on the new object with the given path.
Add: Encapsulates a new object. Two purposes: - to notify the client a new object enters the scene (Client calls Add( VRObject )) - to add a new object to the database (Client receives Add id className name request)
ProxyDispatcher: This dispatcher only forwards events to/from client/other host. But it should maintain a scene for all foreign objects, in order to reduce network trafic and speed up event distribution, also keep local-remote user mappings etc.
chClass: This command changes class of an object. It actually removes the object, creates new object, and stores it to the database. Also updates Transform if object implements HasTransform, takes care of AuthInfo too.
Session: A Session is constructed and started when a client connects to the server. If client authenticates passes, session calls Dispatcher.login() Should it be a OwnedDBObject? Could we store session state then?
Transaction: Transacton: collects request from a client. Caches all objects. Able of rollback, rollforward, isolation... PassiveDBObject: can be stored to database, cannot send nor receive network events.
env: Set/get environment variables. env with no arguments returns all properties. env name returns value for the specified property. env name = value sets the property. Admin command.
File: A File. This VRObject should be used for files not expected to have a Transform. For example, images, binaries, etc... The contents of the file are pointed to by its url NetResource.
Administrator: Administrator is no more than User which implements Admin interface. Since it's in server package, also can access protected stuff. Administrator owns everything.
DBObject: DBObject defines methodes for database storage. When processing a request, sets the field value and stores itself into database, if one is specified.
ClassFilter: Filtering by class name Filters out instances of this class. Note that package name is ignored, and also does not care of ineritance.
Alice: AliceBot VRObject. TODO: maintain remote scenes SECURITY: Alice executes AIML on this host while connected to other hosts thru Gates!!!
Request: This class represents a single request from the client. It extends Message to adding request logging capabilites, and also adds Client
Client: Generic Client class. Tracks visible objects, but forwards events to Dispatcher even if client sends events to invisible VRObjects.
Mirror: A Mirror connects to the remote host on startup, and then then simply mirrors (copies) all seen objects to local database
Checkpoint: Runs from Scheduler. - commits database and request log - closes inactive sessions - collects statistics
| Home | Contact Us | Privacy Policy | Terms of Service |