$search
00001 00008 /***************************************************************************** 00009 ** Ifdefs 00010 *****************************************************************************/ 00011 00012 #ifndef ECL_TIME_STAMP_POS_HPP_ 00013 #define ECL_TIME_STAMP_POS_HPP_ 00014 00015 /***************************************************************************** 00016 ** Platform Check 00017 *****************************************************************************/ 00018 00019 #include <ecl/config.hpp> 00020 #if defined(ECL_IS_POSIX) 00021 #define ECL_HAS_TIMESTAMP 00022 00023 /***************************************************************************** 00024 ** Includes 00025 *****************************************************************************/ 00026 00027 #include <time.h> 00028 #include <ecl/config/macros.hpp> 00029 #include <ecl/config/portable_types.hpp> 00030 #include <ecl/exceptions/macros.hpp> 00031 #include <ecl/exceptions/standard_exception.hpp> 00032 #include "timestamp_base.hpp" 00033 00034 /***************************************************************************** 00035 ** Namespaces 00036 *****************************************************************************/ 00037 00038 namespace ecl { 00039 00040 /***************************************************************************** 00041 ** Interface [Time] 00042 *****************************************************************************/ 00043 00090 class ECL_PUBLIC TimeStamp : public TimeStampBase { 00091 public: 00092 /********************* 00093 ** Constructors 00094 **********************/ 00104 TimeStamp() ecl_debug_throw_decl(StandardException); 00115 TimeStamp (const double& decimal_time_value) ecl_assert_throw_decl(StandardException); 00126 TimeStamp (const time_t &seconds, const long &nanoseconds) ecl_assert_throw_decl(StandardException); 00136 TimeStamp (const TimeStampBase& base); 00137 00138 virtual ~TimeStamp() {} 00139 00140 /****************************************** 00141 ** Stamps 00142 *******************************************/ 00143 using TimeStampBase::stamp; 00150 const TimeStamp& stamp() ecl_debug_throw_decl(StandardException); 00151 }; 00152 }; // namespace ecl 00153 00154 #ifdef ECL_HAS_EXCEPTIONS 00155 namespace ecl { 00156 namespace time { 00157 00164 ecl::StandardException throwTimeStampException(const char*loc); 00165 00166 } // namespace time 00167 }; // namespace ecl 00168 00169 #endif /* ECL_HAS_EXCEPTIONS */ 00170 00171 00172 #endif /* ECL_IS_POSIX */ 00173 #endif /* ECL_TIME_STAMP_POS_HPP_ */