00001
00039 #if !defined(_CIGI_VERSION_ID_INCLUDED_)
00040 #define _CIGI_VERSION_ID_INCLUDED_
00041
00042
00043 #include "CigiTypes.h"
00044
00045
00046
00047 class CIGI_SPEC CigiVersionID
00048 {
00049 public:
00050
00051
00052
00053
00054
00057 CigiVersionID(void)
00058 : CigiMajorVersion(0)
00059 , CigiMinorVersion(0)
00060 {
00061 }
00062
00063
00066 CigiVersionID(int CigiMajorVersionIn, int CigiMinorVersionIn)
00067 : CigiMajorVersion(CigiMajorVersionIn)
00068 , CigiMinorVersion(CigiMinorVersionIn)
00069 {
00070 }
00071
00072
00075 virtual ~CigiVersionID(void)
00076 {
00077 }
00078
00079
00080
00081
00082
00089 void SetCigiVersion(int CigiMajorVersionIn, int CigiMinorVersionIn)
00090 {
00091 CigiMajorVersion = CigiMajorVersionIn;
00092 CigiMinorVersion = CigiMinorVersionIn;
00093 }
00094
00095
00096
00097
00098
00105 int GetCombinedCigiVersion(void)
00106 {
00107 int CVer = ((CigiMajorVersion << 8) & 0x0000ff00) |
00108 (CigiMinorVersion & 0x000000ff);
00109
00110 return(CVer);
00111 }
00112
00113
00114
00120 bool IsKnownCigiVersion(void)
00121 {
00122 bool KnownVer = false;
00123 if(CigiMajorVersion > 0)
00124 {
00125 if(CigiMajorVersion < 3)
00126 {
00127 if(CigiMinorVersion == 0)
00128 KnownVer = true;
00129 }
00130 else if(CigiMajorVersion == 3)
00131 {
00132 if((CigiMinorVersion >= 0) && (CigiMinorVersion <= 3))
00133 KnownVer = true;
00134 }
00135 }
00136
00137 return(KnownVer);
00138 }
00139
00140
00141
00144 void BestCigiVersion(void)
00145 {
00146 if((CigiMajorVersion == 1) || (CigiMajorVersion == 2))
00147 CigiMinorVersion = 0;
00148 else if(CigiMajorVersion == 3)
00149 {
00150 if(CigiMinorVersion > 3)
00151 CigiMinorVersion = 3;
00152 else if(CigiMinorVersion < 2)
00153 CigiMinorVersion = 0;
00154 }
00155 else
00156 {
00157
00158 CigiMajorVersion = 3;
00159 CigiMinorVersion = 3;
00160 }
00161 }
00162
00163
00164
00165
00166
00171 bool operator ==(const CigiVersionID &TestVersion)
00172 {
00173 return((CigiMajorVersion == TestVersion.CigiMajorVersion) &&
00174 (CigiMinorVersion == TestVersion.CigiMinorVersion));
00175 }
00176
00177
00182 bool operator !=(const CigiVersionID &TestVersion)
00183 {
00184 return((CigiMajorVersion != TestVersion.CigiMajorVersion) ||
00185 (CigiMinorVersion != TestVersion.CigiMinorVersion));
00186 }
00187
00188
00194 bool operator >(const CigiVersionID &TestVersion)
00195 {
00196 bool Rslt = false;
00197 if(CigiMajorVersion > TestVersion.CigiMajorVersion)
00198 Rslt = true;
00199 else if(CigiMajorVersion == TestVersion.CigiMajorVersion)
00200 {
00201 if(CigiMinorVersion > TestVersion.CigiMinorVersion)
00202 Rslt = true;
00203 }
00204 return(Rslt);
00205 }
00206
00207
00213 bool operator >=(const CigiVersionID &TestVersion)
00214 {
00215 bool Rslt = false;
00216 if(CigiMajorVersion > TestVersion.CigiMajorVersion)
00217 Rslt = true;
00218 else if(CigiMajorVersion == TestVersion.CigiMajorVersion)
00219 {
00220 if(CigiMinorVersion >= TestVersion.CigiMinorVersion)
00221 Rslt = true;
00222 }
00223 return(Rslt);
00224 }
00225
00226
00232 bool operator <(const CigiVersionID &TestVersion)
00233 {
00234 bool Rslt = false;
00235 if(CigiMajorVersion < TestVersion.CigiMajorVersion)
00236 Rslt = true;
00237 else if(CigiMajorVersion == TestVersion.CigiMajorVersion)
00238 {
00239 if(CigiMinorVersion < TestVersion.CigiMinorVersion)
00240 Rslt = true;
00241 }
00242 return(Rslt);
00243 }
00244
00245
00251 bool operator <=(const CigiVersionID &TestVersion)
00252 {
00253 bool Rslt = false;
00254 if(CigiMajorVersion < TestVersion.CigiMajorVersion)
00255 Rslt = true;
00256 else if(CigiMajorVersion == TestVersion.CigiMajorVersion)
00257 {
00258 if(CigiMinorVersion <= TestVersion.CigiMinorVersion)
00259 Rslt = true;
00260 }
00261 return(Rslt);
00262 }
00263
00264
00265
00266
00267
00271 int CigiMajorVersion;
00272
00273
00277 int CigiMinorVersion;
00278
00279 };
00280
00281 #endif // _CIGI_VERSION_ID_INCLUDED_
00282
00283