#ifndef VRPN_LAMPORT_CLOCK_H #define VRPN_LAMPORT_CLOCK_H #include "vrpn_Types.h" class vrpn_LamportTimestamp { public: vrpn_LamportTimestamp (int vectorLength, vrpn_uint32 * vector); vrpn_LamportTimestamp (const vrpn_LamportTimestamp &); ~vrpn_LamportTimestamp (void); vrpn_LamportTimestamp & operator = (const vrpn_LamportTimestamp &); // ACCESSORS vrpn_bool operator < (const vrpn_LamportTimestamp & r) const; // Utility functions. vrpn_uint32 operator [] (int i) const; int size (void) const; private: void copy (const vrpn_uint32 *); int d_timestampSize; vrpn_uint32 * d_timestamp; vrpn_LamportTimestamp (void); }; class vrpn_LamportClock { public: vrpn_LamportClock (int numHosts, int ourIndex); ~vrpn_LamportClock (void); // MANIPULATORS void receive (const vrpn_LamportTimestamp &); vrpn_LamportTimestamp * getTimestampAndAdvance (void); private: int d_numHosts; int d_ourIndex; vrpn_uint32 * d_currentTimestamp; }; #endif // VRPN_LAMPORT_CLOCK_H
1.0.0 written by Dimitri van Heesch,
© 1997-1999