TimeValue.h
上传用户:baixin
上传日期:2008-03-13
资源大小:4795k
文件大小:2k
开发平台:

MultiPlatform

  1. /* TimeValue - Encapsulates a time value */
  2. /* Copyright (c) 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,10dec01,dbs  diab build
  7. 01b,19jan00,nel  Modifications for Linux debug build
  8. 01a,08Jul99,aim  created
  9. */
  10. #ifndef __INCTimeValue_h
  11. #define __INCTimeValue_h
  12. #include "time.h"
  13. #ifdef VXDCOM_PLATFORM_VXWORKS
  14. #include "sys/times.h"
  15. #endif
  16. #ifdef VXDCOM_PLATFORM_LINUX
  17. #include "sys/time.h"
  18. #endif
  19. #include <iostream>
  20. class TimeValue
  21.     {
  22.   public:
  23.     virtual ~TimeValue ();
  24.     TimeValue ();
  25.     TimeValue (const timeval& tv);
  26.     TimeValue (long sec, long usec = 0);
  27.     TimeValue& operator += (const TimeValue &rhs);
  28.     TimeValue& operator -= (const TimeValue &rhs);
  29.     friend const TimeValue operator +
  30. (
  31. const TimeValue &lhs,
  32. const TimeValue &rhs
  33. );
  34.     friend const TimeValue operator -
  35. (
  36. const TimeValue &lhs,
  37. const TimeValue &rhs
  38. );
  39.     friend int operator >
  40. (
  41. const TimeValue &tv1,
  42. const TimeValue &tv2
  43. );
  44.     friend int operator <
  45. (
  46. const TimeValue &tv1,
  47. const TimeValue &tv2
  48. );
  49.     friend int operator <=
  50. (
  51. const TimeValue &tv1,
  52. const TimeValue &tv2
  53. );
  54.     friend int operator >=
  55. (
  56. const TimeValue &tv1,
  57. const TimeValue &tv2
  58. );
  59.     friend int operator ==
  60. (
  61. const TimeValue &tv1,
  62. const TimeValue &tv2
  63. );
  64.     friend int operator !=
  65. (
  66. const TimeValue &tv1,
  67. const TimeValue &tv2
  68. );
  69.     friend ostream& operator <<
  70. (
  71. ostream& os,
  72. const TimeValue&
  73. );
  74.     long sec () const;
  75.     long usec () const;
  76.     void set (const timeval&);
  77.     void set (int, int);
  78.     operator timeval () const;
  79.     operator const timeval* () const;
  80.     operator timeval* ();
  81.     static const TimeValue  now ();
  82.     static const TimeValue& zero ();
  83.   private:
  84.     void normalize ();
  85.     // Put the timevalue into a canonical form.
  86.     timeval m_tv;
  87.     };
  88. #endif // __INCTimeValue_h