vrpn  07.33
Virtual Reality Peripheral Network
vrpn_Shared_String Class Reference

#include <vrpn_SharedObject.h>

Inheritance diagram for vrpn_Shared_String:
Collaboration diagram for vrpn_Shared_String:

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_Stringoperator= (const char *newValue)
 
virtual vrpn_Shared_Stringset (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_Stringset (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
 
callbackEntryd_callbacks
 
timedCallbackEntryd_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_Connectiond_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_LamportClockd_lClock
 
vrpn_LamportTimestampd_lastLamportUpdate
 
deferredUpdateCallbackEntryd_deferredUpdateCallbacks
 

Detailed Description

Definition at line 470 of file vrpn_SharedObject.h.

Constructor & Destructor Documentation

vrpn_Shared_String::vrpn_Shared_String ( const char *  name,
const char *  defaultValue = NULL,
vrpn_int32  mode = VRPN_SO_DEFAULT 
)
vrpn_Shared_String::~vrpn_Shared_String ( void  )
virtual

Definition at line 1165 of file vrpn_SharedObject.C.

References d_value.

Member Function Documentation

void vrpn_Shared_String::decode ( const char **  buffer,
vrpn_int32 *  len,
char *  newValue,
timeval *  when 
) const
protected

Definition at line 1389 of file vrpn_SharedObject.C.

References vrpn_unbuffer().

Referenced by handleUpdate().

Here is the call graph for this function:

void vrpn_Shared_String::encode ( char **  buffer,
vrpn_int32 *  len,
const char *  newValue,
timeval  when 
) const
protected

Definition at line 1380 of file vrpn_SharedObject.C.

References vrpn_buffer().

Referenced by sendUpdate().

Here is the call graph for this function:

static int VRPN_CALLBACK vrpn_Shared_String::handle_lamportUpdate ( void *  ,
vrpn_HANDLERPARAM   
)
staticprotected
int vrpn_Shared_String::handleUpdate ( vrpn_HANDLERPARAM  p)
protectedvirtual

Implements vrpn_SharedObject.

Definition at line 1433 of file vrpn_SharedObject.C.

References vrpn_HANDLERPARAM::buffer, decode(), and vrpn_HANDLERPARAM::payload_len.

Here is the call graph for this function:

vrpn_Shared_String::operator const char * ( ) const

Definition at line 1178 of file vrpn_SharedObject.C.

References value().

Here is the call graph for this function:

vrpn_Shared_String & vrpn_Shared_String::operator= ( const char *  newValue)
void vrpn_Shared_String::register_handler ( vrpnSharedStringCallback  cb,
void *  userdata 
)
void vrpn_Shared_String::sendUpdate ( void  )
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().

void vrpn_Shared_String::sendUpdate ( const char *  newValue,
timeval  when 
)
protected
vrpn_Shared_String & vrpn_Shared_String::set ( const char *  newValue,
timeval  when 
)
virtual

Definition at line 1187 of file vrpn_SharedObject.C.

vrpn_Shared_String & vrpn_Shared_String::set ( const char *  newValue,
timeval  when,
vrpn_bool  isLocalSet 
)
protected

Definition at line 1273 of file vrpn_SharedObject.C.

References vrpn_SharedObject::d_lastUpdate, d_value, sendUpdate(), shouldAcceptUpdate(), vrpn_SharedObject::shouldSendUpdate(), and yankCallbacks().

Here is the call graph for this function:

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.

vrpn_bool vrpn_Shared_String::shouldAcceptUpdate ( const char *  newValue,
timeval  when,
vrpn_bool  isLocalSet 
)
protectedvirtual
void vrpn_Shared_String::unregister_handler ( vrpnSharedStringCallback  cb,
void *  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 *().

Member Data Documentation

callbackEntry* vrpn_Shared_String::d_callbacks
protected

Definition at line 515 of file vrpn_SharedObject.h.

Referenced by register_handler(), unregister_handler(), and yankCallbacks().

vrpn_SerializerPolicy vrpn_Shared_String::d_policy
protected

Definition at line 523 of file vrpn_SharedObject.h.

Referenced by setSerializerPolicy(), and shouldAcceptUpdate().

vrpnSharedStringSerializerPolicy vrpn_Shared_String::d_policyCallback
protected

Definition at line 524 of file vrpn_SharedObject.h.

Referenced by setSerializerPolicy(), and shouldAcceptUpdate().

void* vrpn_Shared_String::d_policyUserdata
protected

Definition at line 525 of file vrpn_SharedObject.h.

Referenced by setSerializerPolicy(), and shouldAcceptUpdate().

timedCallbackEntry* vrpn_Shared_String::d_timedCallbacks
protected

Definition at line 521 of file vrpn_SharedObject.h.

Referenced by register_handler(), unregister_handler(), and yankCallbacks().

char* vrpn_Shared_String::d_value
protected

The documentation for this class was generated from the following files: