00001
00002
00003
00004
00005
00006
00007
00008 #ifndef IMP_VERSION_INFO_H
00009 #define IMP_VERSION_INFO_H
00010
00011 #include "utility.h"
00012 #include "exception.h"
00013 #include "macros.h"
00014
00015 #include <iostream>
00016 #include <vector>
00017
00018 IMP_BEGIN_NAMESPACE
00019
00020
00021
00022
00023
00024
00025
00026 class IMPEXPORT VersionInfo
00027 {
00028 typedef VersionInfo This;
00029 public:
00030
00031 VersionInfo(std::string module, std::string version);
00032
00033 VersionInfo() {}
00034
00035 std::string get_module() const { return module_; }
00036
00037 std::string get_version() const { return version_; }
00038
00039
00040 void show(std::ostream &out=std::cout) const {
00041 IMP_USAGE_CHECK(!module_.empty(),
00042 "Attempting to use uninitialized version info");
00043 out << module_ << " " << version_;
00044 }
00045 IMP_COMPARISONS_2(module_, version_);
00046 private:
00047 std::string module_, version_;
00048 };
00049
00050 IMP_OUTPUT_OPERATOR(VersionInfo);
00051
00052 IMP_VALUES(VersionInfo);
00053
00054 IMP_END_NAMESPACE
00055
00056 #endif