00001 // ---------------------------------------------------------------------------- 00002 // CERTI - HLA RunTime Infrastructure 00003 // Copyright (C) 2002-2005 ONERA 00004 // 00005 // This program is free software ; you can redistribute it and/or 00006 // modify it under the terms of the GNU Lesser General Public License 00007 // as published by the Free Software Foundation ; either version 2 of 00008 // the License, or (at your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, but 00011 // WITHOUT ANY WARRANTY ; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 // Lesser General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public 00016 // License along with this program ; if not, write to the Free Software 00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 // ---------------------------------------------------------------------------- 00019 00020 #ifndef CLOCK_HH_ 00021 #define CLOCK_HH_ 00022 00023 00024 00025 #include <string> 00026 #include "certi.hh" 00027 00028 namespace certi { 00029 00040 class CERTI_EXPORT Clock 00041 { 00042 public: 00047 Clock(const std::string newName); 00052 const std::string getName() const {return name;}; 00057 virtual double getResolution() = 0; 00062 virtual uint64_t getCurrentTicksValue() = 0; 00069 virtual uint64_t getDeltaTicks(const uint64_t previousTicks); 00076 virtual double tick2NanoSecond(const uint64_t ticks) = 0; 00083 virtual double getDeltaNanoSecond(const uint64_t firstTicks, const uint64_t secondTicks); 00084 00090 virtual double getDeltaNanoSecond(const uint64_t previousTicks); 00091 00092 virtual ~Clock(); 00093 00098 static Clock* getBestClock (); 00099 protected: 00100 std::string name; 00101 }; 00102 00103 } 00104 00105 #endif /*CLOCK_HH_*/