/* * pc_identifier.cpp * * Created on: Dec 22, 2019 * Author: GC */ #include #include "pc_identifier.hpp" #include "../base/base64.h" namespace license { using namespace std; PcIdentifier::PcIdentifier() {} PcIdentifier::PcIdentifier(const std::string& param) { // TODO Auto-generated constructor stub } PcIdentifier::~PcIdentifier() {} PcIdentifier::PcIdentifier(const PcIdentifier& other) : m_data(other.m_data) {} void PcIdentifier::set_identification_strategy(IDENTIFICATION_STRATEGY strategy) { if (strategy == STRATEGY_UNKNOWN || strategy == STRATEGY_DEFAULT) { throw logic_error("Only known strategies are permitted"); } uint8_t stratMov = (strategy << 5); m_data[1] = (m_data[1] & 0x1F) | stratMov; } void PcIdentifier::set_use_environment_var(bool use_env_var) { if (use_env_var) { m_data[0] = m_data[0] | 0x40; } else { m_data[0] = m_data[0] & ~0x40; } } void PcIdentifier::set_virtual_environment(VIRTUALIZATION virt) { // 110000 0x30 m_data[0] = (m_data[0] && ~0x30) | virt << 4; } void PcIdentifier::set_virtualization(VIRTUALIZATION_DETAIL virtualization_detail) {} void PcIdentifier::set_cloud_provider(CLOUD_PROVIDER cloud_provider) {} void PcIdentifier::set_data(const std::array& data) {} std::string PcIdentifier::print() const { string result = base64(m_data.data(), m_data.size(), 4); std::replace(result.begin(), result.end(), '\n', '-'); return result; } } /* namespace license */