CigiVersionID.h

Go to the documentation of this file.
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    //==> Management
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    //==> Public Accessor functions
00081 
00082    //=========================================================
00089    void SetCigiVersion(int CigiMajorVersionIn, int CigiMinorVersionIn)
00090    {
00091       CigiMajorVersion = CigiMajorVersionIn;
00092       CigiMinorVersion = CigiMinorVersionIn;
00093    }
00094 
00095 
00096    //==> Processor functions
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          // Set the version to the most mature version of CIGI
00158          CigiMajorVersion = 3;
00159          CigiMinorVersion = 3;
00160       }
00161    }
00162 
00163 
00164    //==> Public operator functions
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    //==> Member variables
00266 
00267    //=========================================================
00271    int CigiMajorVersion;
00272 
00273    //=========================================================
00277    int CigiMinorVersion;
00278 
00279 };
00280 
00281 #endif   // _CIGI_VERSION_ID_INCLUDED_
00282 
00283 

Generated on Wed Apr 29 08:59:57 2009 for CCL by  doxygen 1.4.7