(file) Return to TimeValue.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

  1 mike  1.8 //%/////////////////////////////////////////////////////////////////////////////
  2           //
  3 kumpf 1.10 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
  4            // The Open Group, Tivoli Systems
  5 mike  1.8  //
  6            // Permission is hereby granted, free of charge, to any person obtaining a copy
  7 kumpf 1.10 // of this software and associated documentation files (the "Software"), to
  8            // deal in the Software without restriction, including without limitation the
  9            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 10 mike  1.8  // sell copies of the Software, and to permit persons to whom the Software is
 11            // furnished to do so, subject to the following conditions:
 12            // 
 13 kumpf 1.10 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 14 mike  1.8  // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 15            // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 16 kumpf 1.10 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 17            // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 18            // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 19 mike  1.8  // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 20            // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 21            //
 22            //==============================================================================
 23            //
 24            // Author: Mike Brasher (mbrasher@bmc.com)
 25            //
 26            // Modified By:
 27            //
 28            //%/////////////////////////////////////////////////////////////////////////////
 29            
 30            #ifndef Pegasus_TimeValue_h
 31            #define Pegasus_TimeValue_h
 32            
 33            #include <Pegasus/Common/Config.h>
 34            #include <Pegasus/Common/System.h>
 35 kumpf 1.11 #include <Pegasus/Common/Linkage.h>
 36 mike  1.8  
 37            PEGASUS_NAMESPACE_BEGIN
 38            
 39            /** The TimeValue class represents time expressed in seconds plus microseconds.
 40            */
 41            class PEGASUS_COMMON_LINKAGE TimeValue
 42            {
 43            public:
 44            
 45                TimeValue() : _seconds(0), _microseconds(0)
 46                {
 47                }
 48            
 49                TimeValue(Uint32 seconds, Uint32 microseconds) 
 50            	: _seconds(seconds), _microseconds(microseconds)
 51                {
 52                }
 53            
 54                Uint32 getSeconds() const 
 55                {
 56            	return _seconds;
 57 mike  1.8      }
 58            
 59                void setSeconds(Uint32 seconds)
 60                {
 61            	_seconds = seconds;
 62                }
 63            
 64                Uint32 getMicroseconds() const 
 65                {
 66            	return _microseconds;
 67                }
 68            
 69                void setMicroseconds(Uint32 microseconds)
 70                {
 71            	_microseconds = microseconds;
 72                }
 73            
 74                void fromMilliseconds(Uint32 milliseconds)
 75                {
 76 kumpf 1.9  	_seconds = milliseconds / 1000;
 77            	_microseconds = (milliseconds % 1000) * 1000;
 78 mike  1.8      }
 79            
 80                Uint32 toMilliseconds() const 
 81                {
 82            	return _seconds * 1000 + _microseconds / 1000; 
 83                }
 84            
 85                static TimeValue getCurrentTime()
 86                {
 87            	Uint32 seconds;
 88            	Uint32 milliseconds;
 89            	System::getCurrentTime(seconds, milliseconds);
 90 kumpf 1.9  	return TimeValue(seconds, milliseconds * 1000);
 91 mike  1.8      }
 92            
 93            private:
 94                Uint32 _seconds;
 95                Uint32 _microseconds;
 96            };
 97            
 98            PEGASUS_NAMESPACE_END
 99            
100            #endif /* Pegasus_TimeValue_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2