Medical Imaging Interaction Toolkit  2018.4.99-6a3ea89d
Medical Imaging Interaction Toolkit
usModuleVersion.h
Go to the documentation of this file.
1 /*============================================================================
2 
3  Library: CppMicroServices
4 
5  Copyright (c) German Cancer Research Center (DKFZ)
6  All rights reserved.
7 
8  Licensed under the Apache License, Version 2.0 (the "License");
9  you may not use this file except in compliance with the License.
10  You may obtain a copy of the License at
11 
12  http://www.apache.org/licenses/LICENSE-2.0
13 
14  Unless required by applicable law or agreed to in writing, software
15  distributed under the License is distributed on an "AS IS" BASIS,
16  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  See the License for the specific language governing permissions and
18  limitations under the License.
19 
20 ============================================================================*/
21 
22 #ifndef USMODULEVERSION_H
23 #define USMODULEVERSION_H
24 
25 #include <usCoreExport.h>
26 
27 #include <string>
28 
29 US_BEGIN_NAMESPACE
30 
49 class US_Core_EXPORT ModuleVersion {
50 
51 private:
52 
53  friend class ModulePrivate;
54 
55  unsigned int majorVersion;
56  unsigned int minorVersion;
57  unsigned int microVersion;
58  std::string qualifier;
59 
60  static const char SEPARATOR; // = "."
61 
62  bool undefined;
63 
64 
70  void Validate();
71 
72  ModuleVersion& operator=(const ModuleVersion& v);
73 
74  explicit ModuleVersion(bool undefined = false);
75 
76 public:
77 
81  static ModuleVersion EmptyVersion();
82 
87  static ModuleVersion UndefinedVersion();
88 
100  ModuleVersion(unsigned int majorVersion, unsigned int minorVersion, unsigned int microVersion);
101 
110  ModuleVersion(unsigned int majorVersion, unsigned int minorVersion, unsigned int microVersion, const std::string& qualifier);
111 
132  ModuleVersion(const std::string& version);
133 
139  ModuleVersion(const ModuleVersion& version);
140 
141 
155  static ModuleVersion ParseVersion(const std::string& version);
156 
163  bool IsUndefined() const;
164 
170  unsigned int GetMajor() const;
171 
177  unsigned int GetMinor() const;
178 
184  unsigned int GetMicro() const;
185 
191  std::string GetQualifier() const;
192 
203  std::string ToString() const;
204 
218  bool operator==(const ModuleVersion& object) const;
219 
243  int Compare(const ModuleVersion& object) const;
244 
245 };
246 
247 US_END_NAMESPACE
248 
252 US_Core_EXPORT std::ostream& operator<<(std::ostream& os, const US_PREPEND_NAMESPACE(ModuleVersion)& v);
253 
254 #endif // USMODULEVERSION_H
US_Core_EXPORT std::ostream & operator<<(std::ostream &os, const us::ModuleVersion &v)
MITKCORE_EXPORT bool operator==(const InteractionEvent &a, const InteractionEvent &b)