vrpn  07.33
Virtual Reality Peripheral Network
vrpn_Shared_int32 Class Reference

#include <vrpn_SharedObject.h>

Inheritance diagram for vrpn_Shared_int32:
Collaboration diagram for vrpn_Shared_int32:

Classes

struct  callbackEntry
 
struct  timedCallbackEntry
 

Public Member Functions

 vrpn_Shared_int32 (const char *name, vrpn_int32 defaultValue=0, vrpn_int32 mode=VRPN_SO_DEFAULT)
 
virtual ~vrpn_Shared_int32 (void)
 
vrpn_int32 value (void) const
 
 operator vrpn_int32 () const
 
vrpn_Shared_int32operator= (vrpn_int32 newValue)
 
vrpn_Shared_int32set (vrpn_int32 newValue, timeval when)
 
void register_handler (vrpnSharedIntCallback, void *)
 
void unregister_handler (vrpnSharedIntCallback, void *)
 
void register_handler (vrpnTimedSharedIntCallback, void *)
 
void unregister_handler (vrpnTimedSharedIntCallback, void *)
 
void setSerializerPolicy (vrpn_SerializerPolicy policy=vrpn_ACCEPT, vrpnSharedIntSerializerPolicy 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_int32set (vrpn_int32, timeval, vrpn_bool isLocalSet, vrpn_LamportTimestamp *=NULL)
 
virtual vrpn_bool shouldAcceptUpdate (vrpn_int32 newValue, timeval when, vrpn_bool isLocalSet, vrpn_LamportTimestamp *)
 
virtual void sendUpdate (void)
 Should invoke default sendUpdate() for this derived type. More...
 
void sendUpdate (vrpn_int32 newValue, timeval when)
 
void encode (char **buffer, vrpn_int32 *len, vrpn_int32 newValue, timeval when) const
 
void encodeLamport (char **buffer, vrpn_int32 *len, vrpn_int32 newValue, timeval when, vrpn_LamportTimestamp *t) const
 
void decode (const char **buffer, vrpn_int32 *len, vrpn_int32 *newValue, timeval *when) const
 
void decodeLamport (const char **buffer, vrpn_int32 *len, vrpn_int32 *newValue, timeval *when, vrpn_LamportTimestamp **t) 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

vrpn_int32 d_value
 
callbackEntryd_callbacks
 
timedCallbackEntryd_timedCallbacks
 
vrpn_SerializerPolicy d_policy
 
vrpnSharedIntSerializerPolicy 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 247 of file vrpn_SharedObject.h.

Constructor & Destructor Documentation

◆ vrpn_Shared_int32()

vrpn_Shared_int32::vrpn_Shared_int32 ( const char *  name,
vrpn_int32  defaultValue = 0,
vrpn_int32  mode = VRPN_SO_DEFAULT 
)

Definition at line 384 of file vrpn_SharedObject.C.

◆ ~vrpn_Shared_int32()

vrpn_Shared_int32::~vrpn_Shared_int32 ( void  )
virtual

Definition at line 397 of file vrpn_SharedObject.C.

Member Function Documentation

◆ decode()

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

Definition at line 648 of file vrpn_SharedObject.C.

References vrpn_unbuffer().

Referenced by handleUpdate().

Here is the call graph for this function:

◆ decodeLamport()

void vrpn_Shared_int32::decodeLamport ( const char **  buffer,
vrpn_int32 *  len,
vrpn_int32 *  newValue,
timeval *  when,
vrpn_LamportTimestamp **  t 
) const
protected

Definition at line 654 of file vrpn_SharedObject.C.

References vrpn_LamportTimestamp, and vrpn_unbuffer().

Referenced by handle_lamportUpdate().

Here is the call graph for this function:

◆ encode()

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

Definition at line 629 of file vrpn_SharedObject.C.

References vrpn_buffer().

Referenced by sendUpdate().

Here is the call graph for this function:

◆ encodeLamport()

void vrpn_Shared_int32::encodeLamport ( char **  buffer,
vrpn_int32 *  len,
vrpn_int32  newValue,
timeval  when,
vrpn_LamportTimestamp t 
) const
protected

Definition at line 635 of file vrpn_SharedObject.C.

References vrpn_LamportTimestamp::size(), and vrpn_buffer().

Referenced by sendUpdate().

Here is the call graph for this function:

◆ handle_lamportUpdate()

int vrpn_Shared_int32::handle_lamportUpdate ( void *  ud,
vrpn_HANDLERPARAM  p 
)
staticprotected

◆ handleUpdate()

int vrpn_Shared_int32::handleUpdate ( vrpn_HANDLERPARAM  p)
protectedvirtual

Implements vrpn_SharedObject.

Definition at line 717 of file vrpn_SharedObject.C.

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

Here is the call graph for this function:

◆ operator vrpn_int32()

vrpn_Shared_int32::operator vrpn_int32 ( ) const

Definition at line 407 of file vrpn_SharedObject.C.

◆ operator=()

vrpn_Shared_int32 & vrpn_Shared_int32::operator= ( vrpn_int32  newValue)

Definition at line 409 of file vrpn_SharedObject.C.

References set(), and vrpn_gettimeofday.

Referenced by vrpn_Shared_int32_Server::operator=(), and vrpn_Shared_int32_Remote::operator=().

Here is the call graph for this function:

◆ register_handler() [1/2]

void vrpn_Shared_int32::register_handler ( vrpnSharedIntCallback  cb,
void *  userdata 
)

◆ register_handler() [2/2]

◆ sendUpdate() [1/2]

void vrpn_Shared_int32::sendUpdate ( void  )
protectedvirtual

Should invoke default sendUpdate() for this derived type.

Implements vrpn_SharedObject.

Definition at line 673 of file vrpn_SharedObject.C.

References vrpn_SharedObject::d_lastUpdate, and d_value.

Referenced by set().

◆ sendUpdate() [2/2]

void vrpn_Shared_int32::sendUpdate ( vrpn_int32  newValue,
timeval  when 
)
protected

◆ set() [1/2]

vrpn_Shared_int32 & vrpn_Shared_int32::set ( vrpn_int32  newValue,
timeval  when 
)

Definition at line 416 of file vrpn_SharedObject.C.

Referenced by handle_lamportUpdate(), handleUpdate(), and operator=().

◆ set() [2/2]

vrpn_Shared_int32 & vrpn_Shared_int32::set ( vrpn_int32  newValue,
timeval  when,
vrpn_bool  isLocalSet,
vrpn_LamportTimestamp t = NULL 
)
protected

Definition at line 501 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:

◆ setSerializerPolicy()

void vrpn_Shared_int32::setSerializerPolicy ( vrpn_SerializerPolicy  policy = vrpn_ACCEPT,
vrpnSharedIntSerializerPolicy  f = NULL,
void *  userdata = NULL 
)

Definition at line 492 of file vrpn_SharedObject.C.

References d_policy, d_policyCallback, and d_policyUserdata.

◆ shouldAcceptUpdate()

vrpn_bool vrpn_Shared_int32::shouldAcceptUpdate ( vrpn_int32  newValue,
timeval  when,
vrpn_bool  isLocalSet,
vrpn_LamportTimestamp  
)
protectedvirtual

◆ unregister_handler() [1/2]

void vrpn_Shared_int32::unregister_handler ( vrpnSharedIntCallback  cb,
void *  userdata 
)

◆ unregister_handler() [2/2]

◆ value()

vrpn_int32 vrpn_Shared_int32::value ( void  ) const

Definition at line 405 of file vrpn_SharedObject.C.

References d_value.

◆ yankCallbacks()

Member Data Documentation

◆ d_callbacks

callbackEntry* vrpn_Shared_int32::d_callbacks
protected

Definition at line 292 of file vrpn_SharedObject.h.

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

◆ d_policy

vrpn_SerializerPolicy vrpn_Shared_int32::d_policy
protected

Definition at line 329 of file vrpn_SharedObject.h.

Referenced by setSerializerPolicy(), and shouldAcceptUpdate().

◆ d_policyCallback

vrpnSharedIntSerializerPolicy vrpn_Shared_int32::d_policyCallback
protected

Definition at line 330 of file vrpn_SharedObject.h.

Referenced by setSerializerPolicy(), and shouldAcceptUpdate().

◆ d_policyUserdata

void* vrpn_Shared_int32::d_policyUserdata
protected

Definition at line 331 of file vrpn_SharedObject.h.

Referenced by setSerializerPolicy(), and shouldAcceptUpdate().

◆ d_timedCallbacks

timedCallbackEntry* vrpn_Shared_int32::d_timedCallbacks
protected

Definition at line 298 of file vrpn_SharedObject.h.

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

◆ d_value

vrpn_int32 vrpn_Shared_int32::d_value
protected

Definition at line 280 of file vrpn_SharedObject.h.

Referenced by sendUpdate(), set(), shouldAcceptUpdate(), value(), and yankCallbacks().


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