LicenseSpring C++ SDK
Easily add Software Licensing to your application
Loading...
Searching...
No Matches
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
16namespace 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
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
101
105
109
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
159
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
#define LS_API
Macros that expands to dllexport, dllimport or nothing on non Windows platforms or in case of static ...
Definition APIDef.h:22
LSFeatureType
Product feature type.
Definition PODTypes.h:19
Class used for encapsulating LSConsumptionPeriod and converting cosumption period to/from string.
Class that encapsulates information about license feature.
static std::string FeatureTypeToString(LSFeatureType value)
Helper method, converts LSFeatureType to string.
bool isUnlimitedConsumptionAllowed() const
Checks if unlimited consumption is allowed for Consumption license feature.
tm floatingEndDateTime() const
Getter method for floating license feature expiry date.
LicenseFeature()
Constructs invalid license feature with no information.
LSFeatureType featureType() const
Getter method for license feature type.
int32_t floatingInUseCount() const
Getter for current number of simultaneous users using this feature.
bool isOfflineFloating() const
Checks if feature is and offline server floating feature.
LicenseFeature(const std::string &code, const std::string &name, LSFeatureType type, int32_t maxConsumption, int32_t totalConsumption, int32_t localConsumption, const tm &expiryDate, bool allowOverages, int32_t maxOverages, bool resetConsumption, bool allowUnlimitedConsumptions, ConsumptionPeriod consumptionPeriod, const std::string &metadata, bool isFloating, bool isOfflineFloating, int32_t floatingTimeout, int32_t floatingUsers, int32_t floatingInUseCount, const tm &floatingStartDateTime, const tm &floatingEndDateTime, bool allowNegativeConsumptions=true)
Constructs license feature with all of provided info.
bool isNegativeConsumptionAllowed() const
Checks if negative consumption is allowed for Consumption license feature.
const std::string & name() const
Getter method for license feature name.
bool isExpired() const
Checks if license feature expired.
int32_t floatingTimeout() const
Getter for floating license timeout.
const std::string & metadata() const
Getter method for license feature metadata.
static LSFeatureType FeatureTypeFromString(const std::string &value)
Helper method, converts string to LSFeatureType.
bool isResetConsumptionEnabled() const
Checks if consumption reset is allowed for Consumption license feature.
bool isOveragesAllowed() const
Checks if overage is allowed for Consumption license feature.
std::string toString() const
Helper method, compose license feature info into string.
int32_t floatingUsers() const
Getter for maximum number of simultaneous users for this feature.
ConsumptionPeriod consumptionPeriod() const
Returns period of time after which consumption is reset.
bool floatingIsExpired() const
Checks if floating license feature expired.
LicenseFeature(const std::string &code, const std::string &name, LSFeatureType type)
Constructs license feature with given code, name and type.
int32_t totalConsumption() const
Getter method for license feature current total consumption.
bool isFloating() const
Checks if feature is a floating feature.
tm floatingEndDateTimeUtc() const
Getter method for license feature expiry date in UTC.
int32_t localConsumption() const
Getter method for license feature local consumption.
tm expiryDateUtc() const
Getter method for license feature expiry date in UTC.
int32_t maxOverages() const
Returns maximum overage allowed for the license feature.
int32_t maxConsumption() const
Getter method for license feature maximum consumption.
tm expiryDate() const
Getter method for license feature expiry date.
const std::string & code() const
Getter method for license feature code.