rogue
Loading...
Searching...
No Matches
Version.h
Go to the documentation of this file.
1
17#ifndef __ROGUE_VERSION_H__
18#define __ROGUE_VERSION_H__
19#include "rogue/Directives.h"
20
21#include <stdint.h>
22
23#include <atomic>
24#include <string>
25
26namespace rogue {
27
36class Version {
37 static void init();
38 static void extract(const std::string& compare, uint32_t* major, uint32_t* minor, uint32_t* maint);
39
40 static const char _version[];
41
42 static std::atomic<uint32_t> _major;
43 static std::atomic<uint32_t> _minor;
44 static std::atomic<uint32_t> _maint;
45 static std::atomic<uint32_t> _devel;
46
47 public:
50
55 static std::string current();
56
62 static bool greaterThanEqual(const std::string& compare);
63
69 static bool greaterThan(const std::string& compare);
70
76 static bool lessThanEqual(const std::string& compare);
77
83 static bool lessThan(const std::string& compare);
84
89 static void minVersion(const std::string& compare);
90
95 static void maxVersion(const std::string& compare);
96
101 static void exactVersion(const std::string& compare);
102
104 static void setup_python();
105
107 static uint32_t getMajor();
109 static uint32_t getMinor();
111 static uint32_t getMaint();
113 static uint32_t getDevel();
114
116 static void sleep(uint32_t seconds);
118 static void usleep(uint32_t useconds);
119
121 static std::string pythonVersion();
122};
123} // namespace rogue
124
125#endif
Rogue version query and comparison helpers.
Definition Version.h:36
static bool lessThanEqual(const std::string &compare)
Returns whether current version is less than or equal to compare.
Definition Version.cpp:100
static void maxVersion(const std::string &compare)
Throws if current version is above allowed maximum.
Definition Version.cpp:125
static void minVersion(const std::string &compare)
Throws if current version is below required minimum.
Definition Version.cpp:120
static uint32_t getMinor()
Returns minor version component.
Definition Version.cpp:140
static std::string current()
Returns current Rogue version string.
Definition Version.cpp:75
Version()
Default constructor.
Definition Version.h:49
static void setup_python()
Registers Python bindings for version helpers.
Definition Version.cpp:177
static bool greaterThanEqual(const std::string &compare)
Returns whether current version is greater than or equal to compare.
Definition Version.cpp:80
static std::string pythonVersion()
Returns Python runtime version string.
Definition Version.cpp:155
static uint32_t getMajor()
Returns major version component.
Definition Version.cpp:135
static uint32_t getDevel()
Returns development/build component.
Definition Version.cpp:150
static bool lessThan(const std::string &compare)
Returns whether current version is less than compare.
Definition Version.cpp:110
static bool greaterThan(const std::string &compare)
Returns whether current version is greater than compare.
Definition Version.cpp:90
static void exactVersion(const std::string &compare)
Throws unless current version exactly matches compare.
Definition Version.cpp:130
static uint32_t getMaint()
Returns maintenance/patch version component.
Definition Version.cpp:145
static void usleep(uint32_t useconds)
Microsecond sleep helper for testing/debug timing.
Definition Version.cpp:172
static void sleep(uint32_t seconds)
Sleep helper for testing/debug timing.
Definition Version.cpp:167