LicenseSpring C++ SDK
Easily add Software Licensing to your application
LicenseFeature.h
Go to the documentation of this file.
1 #ifndef LS_LICENSE_FEATURE_H
2 #define LS_LICENSE_FEATURE_H
3 
4 #ifdef _MSC_VER
5 #pragma once
6 #pragma warning( push )
7 #pragma warning( disable : 4251 )
8 #endif
9 
10 #include <string>
11 #include <ctime>
12 #include "PODTypes.h"
13 #include "APIDef.h"
14 #include "ConsumptionPeriod.h"
15 
16 namespace LicenseSpring
17 {
21  {
22  public:
25 
30  LicenseFeature( const std::string& code, const std::string& name, LSFeatureType type );
31 
54  LicenseFeature( const std::string& code, const std::string& name, LSFeatureType type,
55  int32_t maxConsumption, int32_t totalConsumption, int32_t localConsumption,
56  const tm& expiryDate, bool allowOverages, int32_t maxOverages, bool resetConsumption,
57  bool allowUnlimitedConsumptions, ConsumptionPeriod consumptionPeriod,
58  const std::string& metadata, bool isFloating, bool isOfflineFloating, int32_t floatingTimeout,
59  int32_t floatingUsers, int32_t floatingInUseCount, const tm& floatingStartDateTime,
60  const tm& floatingEndDateTime, bool allowNegativeConsumptions = true );
61 
64  const std::string& code() const;
65 
68  const std::string& name() const;
69 
72  LSFeatureType featureType() const;
73 
77  int32_t maxConsumption() const;
78 
82  int32_t totalConsumption() const;
83 
88  int32_t localConsumption() const;
89 
92  int32_t maxOverages() const;
93 
96  bool isOveragesAllowed() const;
97 
100  ConsumptionPeriod consumptionPeriod() const;
101 
104  bool isResetConsumptionEnabled() const;
105 
108  bool isUnlimitedConsumptionAllowed() const;
109 
112  bool isNegativeConsumptionAllowed() const;
113 
118  tm expiryDate() const;
119 
123  tm expiryDateUtc() const;
124 
127  const std::string& metadata() const;
128 
131  bool isExpired() const;
132 
135  bool isFloating() const;
136 
139  bool isOfflineFloating() const;
140 
143  int32_t floatingTimeout() const;
144 
147  int32_t floatingUsers() const;
148 
151  int32_t floatingInUseCount() const;
152 
158  tm floatingEndDateTime() const;
159 
164  tm floatingEndDateTimeUtc() const;
165 
169  bool floatingIsExpired() const;
170 
177  static LSFeatureType FeatureTypeFromString( const std::string& value );
178 
184  static std::string FeatureTypeToString( LSFeatureType value );
185 
189  std::string toString() const;
190 
191  private:
192  std::string m_code;
193  std::string m_name;
194  LSFeatureType m_featureType;
195  int32_t m_maxConsumption;
196  int32_t m_totalConsumption;
197  int32_t m_localConsumption;
198  int32_t m_maxOverages;
199  bool m_allowOverages;
200  bool m_allowUnlimitedConsumptions;
201  bool m_allowNegativeConsumptions;
202  bool m_resetConsumption;
203  ConsumptionPeriod m_consumptionPeriod;
204  tm m_expiryDate;
205  std::string m_metadata;
206  bool m_isFloating;
207  bool m_isOfflineFloating;
208  int32_t m_floatingTimeout;
209  int32_t m_floatingUsers;
210  int32_t m_floatingInUseCount;
211  tm m_floatingStartDateTime;
212  tm m_floatingEndDateTime;
213  };
214 }
215 
216 #ifdef _MSC_VER
217 #pragma warning( pop )
218 #endif
219 
220 #endif // LS_LICENSE_FEATURE_H
LSFeatureType
LSFeatureType
Product feature type.
Definition: PODTypes.h:18
LicenseSpring::LicenseFeature
Class that encapsulates information about license feature.
Definition: LicenseFeature.h:20
ConsumptionPeriod.h
LicenseSpring
Definition: BaseManager.h:16
LicenseSpring::ConsumptionPeriod
Class used for encapsulating LSConsumptionPeriod and converting cosumption period to/from string.
Definition: ConsumptionPeriod.h:10
APIDef.h
LS_API
#define LS_API
Macros that expands to dllexport, dllimport or nothing on non Windows platforms or in case of static ...
Definition: APIDef.h:22
PODTypes.h