Scarab
Project 8 C++ Utility Library
scarab_version.hh
Go to the documentation of this file.
1 /*
2  * version.hh
3  *
4  * Generated by cmake from mt_version.hh.in
5  *
6  * Created on: Mar 20, 2013
7  * Author: nsoblath
8  */
9 
10 #ifndef SCARAB_VERSION_HH_
11 #define SCARAB_VERSION_HH_
12 
13 #include "scarab_api.hh"
14 
15 #include <string>
16 
17 namespace scarab
18 {
20  {
21  public:
22  version_ifc();
23  version_ifc( const version_ifc& );
24  virtual ~version_ifc();
25 
26  version_ifc& operator=( const version_ifc& );
27 
28  virtual unsigned major_version() const = 0;
29  virtual unsigned minor_version() const = 0;
30  virtual unsigned patch_version() const = 0;
31 
32  virtual const std::string& version_str() const = 0;
33 
34  virtual const std::string& package() const = 0;
35  virtual const std::string& commit() const = 0;
36 
37  virtual const std::string& exe_name() const = 0;
38  virtual const std::string& hostname() const = 0;
39  virtual const std::string& username() const = 0;
40 
41  virtual std::string version_info_string() const = 0;
42  };
43 
45  {
46  public:
48  version_semantic( unsigned a_maj_ver, unsigned a_min_ver, unsigned a_patch_ver );
49  version_semantic( const std::string& a_ver );
50  version_semantic( const version_semantic& a_orig );
52 
53  version_semantic& operator=( const version_semantic& a_orig );
54 
55  virtual unsigned major_version() const;
56  virtual unsigned minor_version() const;
57  virtual unsigned patch_version() const;
58 
59  virtual const std::string& version_str() const;
60 
61  virtual const std::string& package() const;
62  virtual const std::string& commit() const;
63 
64  virtual const std::string& exe_name() const;
65  virtual const std::string& hostname() const;
66  virtual const std::string& username() const;
67 
68  virtual std::string version_info_string() const;
69 
70  public:
71  bool parse( const std::string& a_ver );
72 
73  bool combine( unsigned a_maj_ver, unsigned a_min_ver, unsigned a_patch_ver );
74 
75  bool update_exe_host_user();
76 
77  protected:
78  static char s_delimeter;
79 
80  unsigned f_major_ver;
81  unsigned f_minor_ver;
82  unsigned f_patch_ver;
83  std::string f_version;
84 
85  std::string f_package;
86  std::string f_commit;
87 
88  std::string f_exe_name;
89  std::string f_hostname;
90  std::string f_username;
91  };
92 
93 
95  {
96  public:
97  version();
98  ~version();
99  };
100 
101 
102 
103  inline unsigned version_semantic::major_version() const
104  {
105  return f_major_ver;
106  }
107  inline unsigned version_semantic::minor_version() const
108  {
109  return f_minor_ver;
110  }
111  inline unsigned version_semantic::patch_version() const
112  {
113  return f_patch_ver;
114  }
115 
116  inline const std::string& version_semantic::version_str() const
117  {
118  return f_version;
119  }
120 
121  inline const std::string& version_semantic::package() const
122  {
123  return f_package;
124  }
125 
126  inline const std::string& version_semantic::commit() const
127  {
128  return f_commit;
129  }
130 
131  inline const std::string& version_semantic::exe_name() const
132  {
133  return f_exe_name;
134  }
135  inline const std::string& version_semantic::hostname() const
136  {
137  return f_hostname;
138  }
139  inline const std::string& version_semantic::username() const
140  {
141  return f_username;
142  }
143 
144 } // namespace dripline
145 
146 #endif /* SCARAB_VERSION_HH_ */
#define SCARAB_API
Definition: scarab_api.hh:24
virtual unsigned major_version() const
virtual const std::string & commit() const
virtual const std::string & version_str() const
virtual const std::string & exe_name() const
virtual unsigned patch_version() const
virtual const std::string & hostname() const
virtual const std::string & username() const
virtual const std::string & package() const
virtual unsigned minor_version() const