TimeStamp.h
Go to the documentation of this file.
00001 /****************************************************************
00002  *
00003  * Copyright (c) 2010
00004  *
00005  * Fraunhofer Institute for Manufacturing Engineering   
00006  * and Automation (IPA)
00007  *
00008  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00009  *
00010  * Project name: care-o-bot
00011  * ROS stack name: cob3_common
00012  * ROS package name: generic_can
00013  * Description:
00014  *                                                              
00015  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00016  *                      
00017  * Author: Christian Connette, email:christian.connette@ipa.fhg.de
00018  * Supervised by: Christian Connette, email:christian.connette@ipa.fhg.de
00019  *
00020  * Date of creation: Feb 2009
00021  * ToDo: Check if this is still neccessary. Can we use the ROS-Infrastructure within the implementation?
00022  *
00023  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00024  *
00025  * Redistribution and use in source and binary forms, with or without
00026  * modification, are permitted provided that the following conditions are met:
00027  *
00028  *     * Redistributions of source code must retain the above copyright
00029  *       notice, this list of conditions and the following disclaimer.
00030  *     * Redistributions in binary form must reproduce the above copyright
00031  *       notice, this list of conditions and the following disclaimer in the
00032  *       documentation and/or other materials provided with the distribution.
00033  *     * Neither the name of the Fraunhofer Institute for Manufacturing 
00034  *       Engineering and Automation (IPA) nor the names of its
00035  *       contributors may be used to endorse or promote products derived from
00036  *       this software without specific prior written permission.
00037  *
00038  * This program is free software: you can redistribute it and/or modify
00039  * it under the terms of the GNU Lesser General Public License LGPL as 
00040  * published by the Free Software Foundation, either version 3 of the 
00041  * License, or (at your option) any later version.
00042  * 
00043  * This program is distributed in the hope that it will be useful,
00044  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00045  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00046  * GNU Lesser General Public License LGPL for more details.
00047  * 
00048  * You should have received a copy of the GNU Lesser General Public 
00049  * License LGPL along with this program. 
00050  * If not, see <http://www.gnu.org/licenses/>.
00051  *
00052  ****************************************************************/
00053 
00054 #ifndef _TimeStamp_H
00055 #define _TimeStamp_H
00056 
00057 #include <time.h>
00058 #include <cob_utilities/StrUtil.h>
00059 
00060 //-------------------------------------------------------------------
00061 
00067 class TimeStamp
00068 {
00069         public:
00071                 TimeStamp();
00072 
00074                 virtual ~TimeStamp() {};
00075 
00077                 void SetNow();
00078 
00080                 double operator- ( const TimeStamp& EarlierTime ) const;
00081 
00083 
00085                 void operator+= ( double TimeS );
00086 
00088 
00090                 void operator-= ( double TimeS );
00091 
00093                 bool operator> ( const TimeStamp& Time );
00094 
00096                 bool operator< ( const TimeStamp& Time );
00097 
00101                 void getTimeStamp ( long& lSeconds, long& lNanoSeconds );
00102 
00106                 void setTimeStamp ( const long& lSeconds, const long& lNanoSeconds );
00107 
00112                 std::string CurrentToString();
00113 
00114                 std::string ToString();
00115 
00116         protected:
00117 
00119                 timespec m_TimeStamp;
00120 
00121         private:
00122 
00124                 static double TimespecToDouble ( const ::timespec& LargeInt );
00125 
00127                 static ::timespec DoubleToTimespec ( double TimeS );
00128 
00129 };
00130 
00131 
00132 #endif
00133 


cob_utilities
Author(s): Christian Connette
autogenerated on Sun Oct 5 2014 23:00:37