LicenseSpring C++ SDK  7.27.0
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 
46  LicenseFeature( const std::string& code, const std::string& name, LSFeatureType type,
47  int32_t maxConsumption, int32_t totalConsumption, int32_t localConsumption,
48  const tm& expiryDate, bool allowOverages, int32_t maxOverages,
49  bool resetConsumption, bool allowUnlimitedConsumptions, ConsumptionPeriod consumptionPeriod, const std::string& metadata );
50 
53  const std::string& code() const;
54 
57  const std::string& name() const;
58 
62 
66  int32_t maxConsumption() const;
67 
71  int32_t totalConsumption() const;
72 
77  int32_t localConsumption() const;
78 
81  int32_t maxOverages() const;
82 
85  bool isOveragesAllowed() const;
86 
90 
94 
98 
103  tm expiryDate() const;
104 
108  tm expiryDateUtc() const;
109 
112  const std::string& metadata() const;
113 
116  bool isExpired() const;
117 
124  static LSFeatureType FeatureTypeFromString( const std::string& value );
125 
131  static std::string FeatureTypeToString( LSFeatureType value );
132 
136  std::string toString() const;
137 
138  private:
139  std::string m_code;
140  std::string m_name;
141  LSFeatureType m_featureType;
142  int32_t m_maxConsumption;
143  int32_t m_totalConsumption;
144  int32_t m_localConsumption;
145  int32_t m_maxOverages;
146  bool m_allowOverages;
147  bool m_allowUnlimitedConsumptions;
148  bool m_resetConsumption;
149  ConsumptionPeriod m_consumptionPeriod;
150  tm m_expiryDate;
151  std::string m_metadata;
152  };
153 }
154 
155 #ifdef _MSC_VER
156 #pragma warning( pop )
157 #endif
158 
159 #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.
LicenseFeature()
Constructs invalid license feature with no information.
LSFeatureType featureType() const
Getter method for license feature type.
bool isExpired() const
Checks if license feature expired.
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.
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)
Constructs license feature with all of provided info.
bool isOveragesAllowed() const
Checks if overage is allowed for Consumption license feature.
std::string toString() const
Helper method, compose license feature info into string.
const std::string & name() const
Getter method for license feature name.
ConsumptionPeriod consumptionPeriod() const
Returns period of time after which consumption is reset.
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.
int32_t localConsumption() const
Getter method for license feature local consumption.
const std::string & code() const
Getter method for license feature code.
tm expiryDateUtc() const
Getter method for license feature expiry date in UTC.
int32_t maxOverages() const
Returns maximum overage allowed for the license feature.
const std::string & metadata() const
Getter method for license feature metadata.
int32_t maxConsumption() const
Getter method for license feature maximum consumption.
tm expiryDate() const
Getter method for license feature expiry date.