OBTPluginInformation.h

Go to the documentation of this file.
00001 #ifndef OBTPluginInformation_H
00002 #define OBTPluginInformation_H
00003 
00004 #include <string>
00005 #include <sstream>
00006 
00007 #include "OBT.h"
00008 
00009 namespace OBT
00010 {
00019         class OBT_API PluginInformation
00020         {
00021         public:
00022 
00026                 PluginInformation(      const char* pluginName,
00027                         const char* description,
00028                         unsigned int majorVersion, 
00029                         unsigned int minorVersion, 
00030                         const char* versionLabel,
00031                         const char* releaseDate ) ;
00032 
00036                 virtual ~PluginInformation() ;
00037 
00038 
00043                 const char* getPluginName() const ;
00044 
00049                 const char* getDescription() const ;
00050 
00055                 unsigned int getMajorVersion() const ;
00056 
00061                 unsigned int getMinorVersion() const ;
00062 
00067                 const char* getVersionLabel() const ; 
00068 
00073                 const char* getReleaseDate() const ;
00074 
00080                 bool operator < ( const PluginInformation& pluginInformation ) const ;
00081 
00087                 bool operator == ( const PluginInformation& pluginInformation ) const ;
00088 
00094                 bool operator != ( const PluginInformation& pluginInformation ) const ;
00095 
00100                 const char* getCString() const ;
00101 
00103                 static const PluginInformation Unknown ;        
00104 
00105         private:
00106 
00108                 std::string _pluginName ;
00109 
00111                 std::string _description ;
00112 
00114                 unsigned int _majorVersion ;
00115 
00117                 unsigned int _minorVersion ;
00118 
00120                 std::string _versionLabel ;
00121 
00123                 std::string _releaseDate ;
00124         } ;
00125 
00126         //-------------------------------------------------------------------------
00127         // getPluginName
00128         //-------------------------------------------------------------------------
00129         inline const char* 
00130                 PluginInformation::getPluginName() const 
00131         { 
00132                 return _pluginName.c_str(); 
00133         }
00134 
00135         //-------------------------------------------------------------------------
00136         // getDescription
00137         //-------------------------------------------------------------------------
00138         inline const char* 
00139                 PluginInformation::getDescription() const 
00140         { 
00141                 return _description.c_str() ; 
00142         }
00143 
00144         //-------------------------------------------------------------------------
00145         // GetVersionMajor
00146         //-------------------------------------------------------------------------
00147         inline unsigned int 
00148                 PluginInformation::getMajorVersion() const
00149         { 
00150                 return _majorVersion ; 
00151         }
00152 
00153         //-------------------------------------------------------------------------
00154         // GetVersionMinor
00155         //-------------------------------------------------------------------------
00156         inline unsigned int 
00157                 PluginInformation::getMinorVersion() const
00158         { 
00159                 return _minorVersion ; 
00160         }
00161 
00162         //-------------------------------------------------------------------------
00163         // getVersionLabel
00164         //-------------------------------------------------------------------------
00165         inline const char* 
00166                 PluginInformation::getVersionLabel() const 
00167         { 
00168                 return _versionLabel.c_str(); 
00169         }
00170 
00171         //-------------------------------------------------------------------------
00172         // getReleaseDate
00173         //-------------------------------------------------------------------------
00174         inline const char* 
00175                 PluginInformation::getReleaseDate() const 
00176         { 
00177                 return _releaseDate.c_str(); 
00178         }
00179 
00180         //-------------------------------------------------------------------------
00181         // operator const char* 
00182         //-------------------------------------------------------------------------
00183         inline const char*
00184                 PluginInformation::getCString() const 
00185         {
00186                 // WARNING : not thread-safe
00187                 std::string information ;
00188                 std::stringstream stream ;
00189 
00190                 information = _pluginName ;
00191                 information += " - " ;
00192                 stream << getMajorVersion() ;
00193                 information += stream.str() ;
00194                 information += "." ;
00195                 stream.clear() ;
00196                 stream << getMinorVersion() ;
00197                 information += stream.str() ;
00198                 information += " - " ;
00199                 information += _versionLabel ;
00200                 information += " - " ;
00201                 information += _releaseDate ;
00202                 if ( !_description.empty() )
00203                 {
00204                         information += " - " ;
00205                         information += _description ;
00206                 }
00207                 return information.c_str() ;
00208         }
00209         //-------------------------------------------------------------------------
00210         // operator <
00211         //-------------------------------------------------------------------------
00212         inline bool 
00213                 PluginInformation::operator < ( const PluginInformation& pluginInformation ) const 
00214         {
00215                 if ( _majorVersion < pluginInformation.getMajorVersion() )
00216                 {
00217                         return true;
00218                 }
00219                 else if ( _majorVersion == pluginInformation.getMajorVersion() )
00220                 {
00221                         return ( _minorVersion < pluginInformation.getMinorVersion() ) ;
00222                 }
00223                 else
00224                 {
00225                         return false ;
00226                 }
00227         }
00228 
00229         //-------------------------------------------------------------------------
00230         // operator ==
00231         //-------------------------------------------------------------------------
00232         inline bool 
00233                 PluginInformation::operator == ( const PluginInformation& pluginInformation ) const 
00234         {
00235                 return( ( _majorVersion == pluginInformation.getMajorVersion() ) &&
00236                         ( _minorVersion == pluginInformation.getMinorVersion() ) &&
00237                         ( _versionLabel == pluginInformation._versionLabel ) ) ;
00238         }
00239 
00240         //-------------------------------------------------------------------------
00241         // operator !=
00242         //-------------------------------------------------------------------------
00243         inline bool 
00244                 PluginInformation::operator != ( const PluginInformation& pluginInformation ) const 
00245         {
00246                 return( ( _majorVersion != pluginInformation.getMajorVersion() ) ||
00247                         ( _minorVersion != pluginInformation.getMinorVersion() ) ||
00248                         ( _versionLabel != pluginInformation._versionLabel ) ) ;
00249         }
00250 }
00251 #endif //OBTPluginInformation_H

Generated on Wed Oct 1 11:34:05 2008 for OBT by  doxygen 1.5.3