105 lines
1.9 KiB
C++
105 lines
1.9 KiB
C++
#pragma once
|
|
|
|
#include <vector>
|
|
#include "except.h"
|
|
|
|
using namespace std;
|
|
|
|
class LicenseImpl {
|
|
|
|
friend class LicenseValidationResultT<char>;
|
|
friend class LicenseValidationResultT<wchar_t>;
|
|
|
|
public:
|
|
LicenseImpl():
|
|
m_isLease(false)
|
|
{
|
|
|
|
}
|
|
|
|
void CopyFrom(const LicenseImpl * src)
|
|
{
|
|
m_activationKey = src->m_activationKey;
|
|
m_hardwareId = src->m_hardwareId;
|
|
m_isLease = src->m_isLease;
|
|
m_licenseKey = src->m_licenseKey;
|
|
m_xmlLicense = src->m_xmlLicense;
|
|
SetLicenseKeyValidationData(src->m_licenseKeyValidationData.data(), src->m_licenseKeyValidationData.size());
|
|
}
|
|
|
|
void LoadXml(const char * xml);
|
|
const char * SaveXml();
|
|
|
|
void LoadJson(const char * json);
|
|
const char * SaveJson();
|
|
|
|
const char * GetLicenseKey() const
|
|
{
|
|
return m_licenseKey.c_str();
|
|
}
|
|
|
|
void SetLicenseKey(const char * licenseKey)
|
|
{
|
|
m_licenseKey = licenseKey;
|
|
}
|
|
|
|
void GetLicenseKeyValidationData(const void ** buf, int * len) const
|
|
{
|
|
*buf = m_licenseKeyValidationData.data();
|
|
*len = m_licenseKeyValidationData.size();
|
|
}
|
|
|
|
void SetLicenseKeyValidationData(const void* buf, int len)
|
|
{
|
|
if (buf && len > 0)
|
|
{
|
|
m_licenseKeyValidationData.resize(len);
|
|
memcpy(m_licenseKeyValidationData.data(), buf, len);
|
|
}
|
|
else
|
|
{
|
|
m_licenseKeyValidationData.clear();
|
|
}
|
|
}
|
|
|
|
const char * GetActivationKey() const
|
|
{
|
|
return m_activationKey.c_str();
|
|
}
|
|
|
|
void SetActivationKey(const char * activationKey)
|
|
{
|
|
m_activationKey = activationKey;
|
|
}
|
|
|
|
const char * GetHardwareId() const
|
|
{
|
|
return m_hardwareId.c_str();
|
|
}
|
|
|
|
void SetHardwareId(const char * hardwareId)
|
|
{
|
|
m_hardwareId = hardwareId;
|
|
}
|
|
|
|
bool IsLease() const
|
|
{
|
|
return m_isLease;
|
|
}
|
|
|
|
void SetLease(bool isLease)
|
|
{
|
|
m_isLease = isLease;
|
|
}
|
|
|
|
private:
|
|
string m_licenseKey;
|
|
string m_activationKey;
|
|
string m_hardwareId;
|
|
vector<unsigned char> m_licenseKeyValidationData;
|
|
bool m_isLease;
|
|
string m_xmlLicense;
|
|
string m_jsonLicense;
|
|
static const int m_version = 1;
|
|
};
|