Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

at_types.h

Go to the documentation of this file.
00001 //
00002 // The Austria library is copyright (c) Gianni Mariani 2004.
00003 // 
00004 // Grant Of License.  Grants to LICENSEE the non-exclusive right to use the Austria
00005 // library subject to the terms of the LGPL.
00006 // 
00007 // A copy of the license is available in this directory or one may be found at this URL:
00008 //      http://www.gnu.org/copyleft/lesser.txt
00009 // 
00015 #ifndef x_at_types_h_x
00016 #define x_at_types_h_x 1
00017 
00018 #include "at_exports.h"
00019 
00020 #ifndef AT_NO_STRING
00021 #include <string>
00022 typedef std::string                                                     AT_String;
00023 #endif
00024 
00025 // Austria namespace
00026 namespace at
00027 {
00028 
00029 typedef short                                                           Int16;
00030 typedef unsigned short                                          Uint16;
00031 typedef int                                                                     Int32;
00032 typedef unsigned int                                            Uint32;
00033 typedef long long                                                       Int64;
00034 typedef unsigned long long                                      Uint64;
00035 
00036 typedef float                                                           Real32;
00037 typedef double                                                          Real64;
00038 
00039 typedef unsigned int                                            PtrDiff;
00040 
00041 
00042 // ======== IType ==================================================
00048 template < typename w_type, typename w_init_type, w_init_type w_val >
00049 class IType
00050 {
00051     public:
00052 
00053     w_type                                          m_value;
00054 
00055     inline IType()
00056       : m_value( w_val )
00057     {
00058     }
00059 
00060     inline operator w_type & ()
00061     {
00062         return m_value;
00063     }
00064 
00065     inline operator const w_type & () const
00066     {
00067         return m_value;
00068     }
00069 
00070     inline w_type & operator = ( const w_type & i_value )
00071     {
00072         m_value = i_value;
00073 
00074         return m_value;
00075     }
00076 
00077 };
00078 
00079 
00080 
00081 // ======== TimeStamp ==============================================
00087 class AUSTRIA_EXPORT TimeStamp
00088 {
00089         public:
00090 
00096         Int64                m_time;
00097 
00098 };
00099 
00100 class AUSTRIA_EXPORT TimeInterval
00101 {
00102         public:
00103 
00109         Int64                m_time;
00110 
00111     enum {
00112         PerSec = 10000000,
00113         PerMilliSec = 10000,
00114         PerMicroSec = 10
00115     };
00116 
00117     // ======== MilliSecs =============================================
00124     inline Int64 MilliSecs() const
00125     {
00126         return m_time / PerMilliSec;
00127     }
00128 
00129 };
00130 
00131 }; // namespace
00132 
00133 #endif // x_at_types_h_x
00134 
00135 

Generated for Austria by doxygen and MakeXS at Sun Oct 24 17:35:34 PDT 2004