00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef LIBCERTI_LBTS_HH
00026 #define LIBCERTI_LBTS_HH
00027
00028 #include "certi.hh"
00029 #include "FedTimeD.hh"
00030
00031 #ifndef _WIN32
00032 #include <unistd.h>
00033 #include <stdlib.h>
00034 #endif
00035
00036 #include <map>
00037 #include <vector>
00038
00039 namespace certi {
00040
00041 class CERTI_EXPORT LBTS
00042 {
00043 public:
00044 typedef std::pair<FederateHandle, FederationTime> FederateClock ;
00045
00046 LBTS();
00047 ~LBTS();
00048
00049 void compute();
00050 bool exists(FederateHandle) const ;
00051 void get(std::vector<FederateClock> &) const ;
00052 void insert(FederateHandle num_fed, FederationTime the_time);
00053 void remove(FederateHandle num_fed);
00054 void setFederate(FederateHandle handle) { MyFederateNumber = handle ; };
00055 size_t size() const { return clocks.size(); };
00056 void update(FederateHandle num_fed, FederationTime the_time);
00057
00058 protected:
00059 FederationTime _LBTS ;
00060 FederateHandle MyFederateNumber ;
00061
00062 private:
00063 typedef std::map<FederateHandle, FederationTime> ClockSet ;
00064
00065 ClockSet clocks ;
00066 };
00067
00068 }
00069
00070 #endif // LIBCERTI_LBTS_HH
00071
00072