NDEVR
API Documentation
NDEVRActivation.h
1#pragma once
2#include "DLLInfo.h"
3#include <NDEVR/INIInterface.h>
4#if NDEVR_SECURITY
5#include <NDEVR/Time.h>
6#include <NDEVR/TimeSpan.h>
7#include <NDEVR/TranslatedString.h>
8namespace NDEVR
9{
10 struct ActivationInfo;
14 class NDEVRActivation : public INIInterface
15 {
16 public:
20 enum LicenseType : uint01
21 {
22 e_os_user_name = 0
23 , e_software_user_name
24 , e_software_email
25 , e_date_range
26 , e_hardware_cpu
27 , e_hardware_gpu
28 , e_harddrive
29 , e_os_key
30 , e_mac_address
31 , e_application_name
32 };
33 public:
37 NDEVR_BASE_API NDEVRActivation();
43 NDEVRActivation(const TranslatedString& activation_name, const StringView& id);
48 NDEVRActivation(const File& file);
53 virtual void getINI(INIFactory& factory) final override;
58 TranslatedString name() const;
63 NDEVR_BASE_API String id() const;
68 String featureIDs();
73 String localCheckID();
77 void selectDefaultINIFile();
82 TimeSpan activationTimeSpan() const;
87 NDEVR_BASE_API void setActivationTimeSpan(const TimeSpan& span);
92 NDEVR_BASE_API bool isActivated() const;
98 NDEVR_BASE_API bool isActivated(StringView request_string) const;
105 NDEVR_BASE_API void setActive(LicenseType type, bool active, bool force_active);
111 NDEVR_BASE_API void temporaryActivate(const TimeSpan& span, StringView password);
116 void setActiveRange(TimeSpan span);
117#ifdef _DEBUG
123 NDEVR_BASE_API void generateAltLicense(const StringView& password, File output);
124#endif
131 NDEVR_BASE_API void activate(StringView request_string, File admin_file, File local_validation);
132 private:
133 TranslatedString m_name;
134 ActivationInfo* m_activation_info;
135 };
136
140 class NDEVR_BASE_API NDEVRActivationServer
141 {
142 public:
146 static void ReadSoftwareLicenses();
151 static bool IsSoftwareActivated();
156 static TimeSpan SoftwareActivationTimePeriod();
162 static bool IsFeatureActivated(const StringView& id);
168 static String LocalCheckID(const StringView& feature_id);
175 static void GenerateTrialPeriod(const StringView& feature_id, TimeSpan span, const StringView& password);
181 static bool AcceptSoftwareLicense(File file);
187 static bool AddActivation(NDEVRActivation* activation);
192 static Time InternetTime();
198 static void SetInternetTime(const Time& time, const StringView& password);
204 static void SetInternetTimeOffset(const TimeSpan& time, const StringView& password);
209 static NDEVRActivation* ApplicationActivation();
215 static NDEVRActivation* FeatureActivation(const StringView& id);
222 static NDEVRActivation* FeatureActivation(const TranslatedString name, const StringView& id);
223 private:
224 static Dictionary<String, NDEVRActivation*> s_activated_features;
225 };
226}
227#endif
Contains methods for easily reading and writing to an INI file including efficient casting,...
The primary namespace for the NDEVR SDK.
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
@ name
The display name of the object.