Scarab  v3.9.1
Project 8 C++ Utility Library
version_wrapper.hh
Go to the documentation of this file.
1 /*
2  * version_wrapper.hh
3  *
4  * Created on: Jul 23, 2018
5  * Author: N.S. Oblath
6  */
7 
8 #ifndef SCARAB_VERSION_WRAPPER_HH_
9 #define SCARAB_VERSION_WRAPPER_HH_
10 
11 #include "scarab_version.hh"
12 
13 #include "singleton.hh"
14 
15 namespace scarab
16 {
17  class SCARAB_API version_wrapper : public singleton< version_wrapper >, public version_ifc
18  {
19  protected:
20  friend class singleton< version_wrapper >;
21  friend class destroyer< version_wrapper >;
22  version_wrapper() : f_imp( new version() ) {}
24 
25  public:
27  {
28  f_imp = a_imp;
29  return;
30  }
31 
32  public:
33  virtual unsigned major_version() const
34  {
35  return f_imp->major_version();
36  }
37  virtual unsigned minor_version() const
38  {
39  return f_imp->minor_version();
40  }
41  virtual unsigned patch_version() const
42  {
43  return f_imp->patch_version();
44  }
45 
46  virtual const std::string& version_str() const
47  {
48  return f_imp->version_str();
49  }
50 
51  virtual const std::string& package() const
52  {
53  return f_imp->package();
54  }
55  virtual const std::string& commit() const
56  {
57  return f_imp->commit();
58  }
59 
60  virtual const std::string& exe_name() const
61  {
62  return f_imp->exe_name();
63  }
64  virtual const std::string& hostname() const
65  {
66  return f_imp->hostname();
67  }
68  virtual const std::string& username() const
69  {
70  return f_imp->username();
71  }
72 
73  virtual std::string version_info_string() const
74  {
75  return f_imp->version_info_string();
76  }
77 
78  private:
80  };
81 
82 }
83 
84 #endif /* SCARAB_VERSION_WRAPPER_HH_ */
virtual std::string version_info_string() const
virtual const std::string & version_str() const
virtual unsigned patch_version() const
#define SCARAB_API
Definition: scarab_api.hh:24
std::shared_ptr< version_semantic > version_semantic_ptr_t
void set_imp(version_semantic_ptr_t a_imp)
virtual const std::string & hostname() const
virtual const std::string & username() const
Base class that turns a class into a singleton.
Definition: singleton.hh:43
virtual unsigned major_version() const
virtual const std::string & package() const
version_semantic_ptr_t f_imp
virtual const std::string & exe_name() const
virtual unsigned minor_version() const
virtual const std::string & commit() const