|
vrpn
07.33
Virtual Reality Peripheral Network
|
#include <vrpn_SharedObject.h>


Classes | |
| struct | callbackEntry |
| struct | timedCallbackEntry |
Public Member Functions | |
| vrpn_Shared_String (const char *name, const char *defaultValue=NULL, vrpn_int32 mode=VRPN_SO_DEFAULT) | |
| virtual | ~vrpn_Shared_String (void) |
| const char * | value (void) const |
| operator const char * () const | |
| vrpn_Shared_String & | operator= (const char *newValue) |
| virtual vrpn_Shared_String & | set (const char *newValue, timeval when) |
| void | register_handler (vrpnSharedStringCallback, void *) |
| void | unregister_handler (vrpnSharedStringCallback, void *) |
| void | register_handler (vrpnTimedSharedStringCallback, void *) |
| void | unregister_handler (vrpnTimedSharedStringCallback, void *) |
| void | setSerializerPolicy (vrpn_SerializerPolicy policy=vrpn_ACCEPT, vrpnSharedStringSerializerPolicy f=NULL, void *userdata=NULL) |
Public Member Functions inherited from vrpn_SharedObject | |
| vrpn_SharedObject (const char *name, const char *tname, vrpn_int32 mode) | |
| virtual | ~vrpn_SharedObject (void) |
| const char * | name (void) const |
| vrpn_bool | isSerializer (void) const |
| virtual void | bindConnection (vrpn_Connection *) |
| Every derived class should call this, do what it needs to, < and ALSO call {server,remote}PostBindCleanup() to get < myId and peerId set up and to get standard handlers registered. More... | |
| void | useLamportClock (vrpn_LamportClock *) |
| Lamport Clocks are NOT currently integrated. They should < provide serialization (virtual timestamps) that work even < when the clocks of the computers communicating are not < roughly synchronized. More... | |
| void | becomeSerializer (void) |
| Requests that this instance of the shared object becomes < the serializer (i.e. lock-arbitrator), and we can then use < setSerializerPolicy to imitate a complete lock. Does nothing < if we already are the serializer (isSerializer() returns true); < otherwise initiates a 3-phase request protocol with the < current serializer. There currently isn't any provision for < notification of success (or failure). More... | |
| void | registerDeferredUpdateCallback (vrpnDeferredUpdateCallback, void *userdata) |
| The specified function will be passed userdata when this < particular shared object defers an update (receives a local < update but is not the serializer and so sends the update off < to the serializer). Intended to allow insertion of timing < code for those times when you really want to know how long < every little thing is taking. More... | |
Protected Member Functions | |
| vrpn_Shared_String & | set (const char *, timeval, vrpn_bool isLocalSet) |
| virtual vrpn_bool | shouldAcceptUpdate (const char *newValue, timeval when, vrpn_bool isLocalSet) |
| virtual void | sendUpdate (void) |
| Should invoke default sendUpdate() for this derived type. More... | |
| void | sendUpdate (const char *newValue, timeval when) |
| void | encode (char **buffer, vrpn_int32 *len, const char *newValue, timeval when) const |
| void | decode (const char **buffer, vrpn_int32 *len, char *newValue, timeval *when) const |
| int | yankCallbacks (vrpn_bool isLocal) |
| int | handleUpdate (vrpn_HANDLERPARAM) |
Protected Member Functions inherited from vrpn_SharedObject | |
| virtual vrpn_bool | shouldSendUpdate (vrpn_bool isLocalSet, vrpn_bool acceptedUpdate) |
| int | yankCallbacks (vrpn_bool isLocal) |
| must set d_lastUpdate BEFORE calling yankCallbacks() More... | |
| int | yankDeferredUpdateCallbacks (void) |
| returns -1 on error (i.e. nonzero return by a callback) More... | |
| void | serverPostBindCleanup (void) |
| void | remotePostBindCleanup (void) |
Static Protected Member Functions | |
| static int VRPN_CALLBACK | handle_lamportUpdate (void *, vrpn_HANDLERPARAM) |
Static Protected Member Functions inherited from vrpn_SharedObject | |
| static int VRPN_CALLBACK | handle_requestSerializer (void *, vrpn_HANDLERPARAM) |
| static int VRPN_CALLBACK | handle_grantSerializer (void *, vrpn_HANDLERPARAM) |
| static int VRPN_CALLBACK | handle_assumeSerializer (void *, vrpn_HANDLERPARAM) |
| static int VRPN_CALLBACK | handle_gotConnection (void *, vrpn_HANDLERPARAM) |
| Register this handler in postBindCleanup(); < it calls sendUpdate() to make sure the remote has the < correct value on first connection. More... | |
| static int VRPN_CALLBACK | handle_update (void *, vrpn_HANDLERPARAM) |
| Passes arguments to handleUpdate() for this type; < registered in postBindCleanup();. More... | |
Protected Attributes | |
| char * | d_value |
| callbackEntry * | d_callbacks |
| timedCallbackEntry * | d_timedCallbacks |
| vrpn_SerializerPolicy | d_policy |
| vrpnSharedStringSerializerPolicy | d_policyCallback |
| void * | d_policyUserdata |
Protected Attributes inherited from vrpn_SharedObject | |
| char * | d_name |
| vrpn_int32 | d_mode |
| timeval | d_lastUpdate |
| char * | d_typename |
| vrpn_Connection * | d_connection |
| vrpn_int32 | d_serverId |
| vrpn_int32 | d_remoteId |
| vrpn_int32 | d_myId |
| vrpn_int32 | d_peerId |
| vrpn_int32 | d_update_type |
| vrpn_int32 | d_requestSerializer_type |
| Sent to the serializer to assume its duties. More... | |
| vrpn_int32 | d_grantSerializer_type |
| Sent by the serializer to grant a request. More... | |
| vrpn_int32 | d_assumeSerializer_type |
| Sent by a new serializer once it has been notified that < its request has been granted. More... | |
| vrpn_int32 | d_lamportUpdate_type |
| vrpn_bool | d_isSerializer |
| default to vrpn_TRUE for servers, FALSE for remotes More... | |
| vrpn_bool | d_isNegotiatingSerializer |
| As long as we have inorder delivery, this should be < sufficient to keep us from getting many at once. More... | |
| vrpn_bool | d_queueSets |
| If this is true, no set()s are processed; instead, they < are queued for later execution. < NOT IMPLEMENTED. More... | |
| vrpn_LamportClock * | d_lClock |
| vrpn_LamportTimestamp * | d_lastLamportUpdate |
| deferredUpdateCallbackEntry * | d_deferredUpdateCallbacks |
Definition at line 470 of file vrpn_SharedObject.h.
| vrpn_Shared_String::vrpn_Shared_String | ( | const char * | name, |
| const char * | defaultValue = NULL, |
||
| vrpn_int32 | mode = VRPN_SO_DEFAULT |
||
| ) |
Definition at line 1143 of file vrpn_SharedObject.C.
References vrpn_SharedObject::d_lastUpdate, vrpn_SharedObject::d_name, d_value, and vrpn_gettimeofday.
|
virtual |
Definition at line 1165 of file vrpn_SharedObject.C.
References d_value.
|
protected |
Definition at line 1389 of file vrpn_SharedObject.C.
References vrpn_unbuffer().
Referenced by handleUpdate().

|
protected |
Definition at line 1380 of file vrpn_SharedObject.C.
References vrpn_buffer().
Referenced by sendUpdate().

|
staticprotected |
|
protectedvirtual |
Implements vrpn_SharedObject.
Definition at line 1433 of file vrpn_SharedObject.C.
References vrpn_HANDLERPARAM::buffer, decode(), and vrpn_HANDLERPARAM::payload_len.

| vrpn_Shared_String::operator const char * | ( | ) | const |
Definition at line 1178 of file vrpn_SharedObject.C.
References value().

| vrpn_Shared_String & vrpn_Shared_String::operator= | ( | const char * | newValue | ) |
Definition at line 1180 of file vrpn_SharedObject.C.
References vrpn_gettimeofday.
Referenced by vrpn_Shared_String_Server::operator=(), and vrpn_Shared_String_Remote::operator=().
| void vrpn_Shared_String::register_handler | ( | vrpnSharedStringCallback | cb, |
| void * | userdata | ||
| ) |
Definition at line 1192 of file vrpn_SharedObject.C.
References d_callbacks, vrpn_Shared_String::callbackEntry::handler, vrpn_Shared_String::callbackEntry::next, and vrpn_Shared_String::callbackEntry::userdata.
| void vrpn_Shared_String::register_handler | ( | vrpnTimedSharedStringCallback | cb, |
| void * | userdata | ||
| ) |
Definition at line 1228 of file vrpn_SharedObject.C.
References d_timedCallbacks, vrpn_Shared_String::timedCallbackEntry::handler, vrpn_Shared_String::timedCallbackEntry::next, and vrpn_Shared_String::timedCallbackEntry::userdata.
|
protectedvirtual |
Should invoke default sendUpdate() for this derived type.
Implements vrpn_SharedObject.
Definition at line 1397 of file vrpn_SharedObject.C.
References vrpn_SharedObject::d_lastUpdate, and d_value.
Referenced by set().
|
protected |
Definition at line 1399 of file vrpn_SharedObject.C.
References vrpn_SharedObject::d_connection, vrpn_SharedObject::d_lastUpdate, vrpn_SharedObject::d_myId, vrpn_SharedObject::d_update_type, encode(), vrpn_Connection::pack_message(), and vrpn_CONNECTION_RELIABLE.

|
virtual |
Definition at line 1187 of file vrpn_SharedObject.C.
|
protected |
Definition at line 1273 of file vrpn_SharedObject.C.
References vrpn_SharedObject::d_lastUpdate, d_value, sendUpdate(), shouldAcceptUpdate(), vrpn_SharedObject::shouldSendUpdate(), and yankCallbacks().

| void vrpn_Shared_String::setSerializerPolicy | ( | vrpn_SerializerPolicy | policy = vrpn_ACCEPT, |
| vrpnSharedStringSerializerPolicy | f = NULL, |
||
| void * | userdata = NULL |
||
| ) |
Definition at line 1264 of file vrpn_SharedObject.C.
References d_policy, d_policyCallback, and d_policyUserdata.
|
protectedvirtual |
Definition at line 1311 of file vrpn_SharedObject.C.
References vrpn_SharedObject::d_isSerializer, vrpn_SharedObject::d_lastUpdate, vrpn_SharedObject::d_mode, d_policy, d_policyCallback, d_policyUserdata, d_value, vrpn_ACCEPT, vrpn_CALLBACK, vrpn_DENY_LOCAL, VRPN_SO_DEFER_UPDATES, VRPN_SO_IGNORE_IDEMPOTENT, VRPN_SO_IGNORE_OLD, vrpn_TimevalEqual(), vrpn_TimevalGreater(), and vrpn_SharedObject::yankDeferredUpdateCallbacks().
Referenced by set().

| void vrpn_Shared_String::unregister_handler | ( | vrpnSharedStringCallback | cb, |
| void * | userdata | ||
| ) |
Definition at line 1207 of file vrpn_SharedObject.C.
References d_callbacks, vrpn_Shared_String::callbackEntry::handler, vrpn_Shared_String::callbackEntry::next, and vrpn_Shared_String::callbackEntry::userdata.
| void vrpn_Shared_String::unregister_handler | ( | vrpnTimedSharedStringCallback | cb, |
| void * | userdata | ||
| ) |
Definition at line 1243 of file vrpn_SharedObject.C.
References d_timedCallbacks, vrpn_Shared_String::timedCallbackEntry::handler, vrpn_Shared_String::timedCallbackEntry::next, and vrpn_Shared_String::timedCallbackEntry::userdata.
| const char * vrpn_Shared_String::value | ( | void | ) | const |
Definition at line 1176 of file vrpn_SharedObject.C.
References d_value.
Referenced by operator const char *().
|
protected |
Definition at line 1413 of file vrpn_SharedObject.C.
References d_callbacks, vrpn_SharedObject::d_lastUpdate, d_timedCallbacks, d_value, vrpn_Shared_String::callbackEntry::handler, vrpn_Shared_String::timedCallbackEntry::handler, vrpn_Shared_String::callbackEntry::next, vrpn_Shared_String::timedCallbackEntry::next, vrpn_Shared_String::callbackEntry::userdata, and vrpn_Shared_String::timedCallbackEntry::userdata.
Referenced by set().
|
protected |
Definition at line 515 of file vrpn_SharedObject.h.
Referenced by register_handler(), unregister_handler(), and yankCallbacks().
|
protected |
Definition at line 523 of file vrpn_SharedObject.h.
Referenced by setSerializerPolicy(), and shouldAcceptUpdate().
|
protected |
Definition at line 524 of file vrpn_SharedObject.h.
Referenced by setSerializerPolicy(), and shouldAcceptUpdate().
|
protected |
Definition at line 525 of file vrpn_SharedObject.h.
Referenced by setSerializerPolicy(), and shouldAcceptUpdate().
|
protected |
Definition at line 521 of file vrpn_SharedObject.h.
Referenced by register_handler(), unregister_handler(), and yankCallbacks().
|
protected |
Definition at line 503 of file vrpn_SharedObject.h.
Referenced by sendUpdate(), set(), shouldAcceptUpdate(), value(), vrpn_Shared_String(), yankCallbacks(), and ~vrpn_Shared_String().