gcontini
2020-03-14 ae9cc0f8f418111c04989d1bf28f2cbec7abf847
src/library/os/execution_environment.hpp
@@ -13,6 +13,12 @@
namespace license {
namespace os {
/*
 * windows bios sometimes reports vm names add execution environment detection from bios
const char *vmVendors[] = {
   "VMware", "Microsoft Corporation", "Virtual Machine", "innotek GmbH", "PowerVM", "Bochs", "KVM"};
*/
typedef enum { NONE, CONTAINER, VM } VIRTUALIZATION;
typedef enum {
@@ -32,18 +38,23 @@
class ExecutionEnvironment {
private:
   std::string sys_vendor;
   std::string bios_vendor;
   std::string bios_description;
   //detect if it's a kind of container technology (docker or lxc)
   bool is_container() const;
   std::string m_sys_vendor;
   std::string m_bios_vendor;
   std::string m_bios_description;
public:
   ExecutionEnvironment();
   ~ExecutionEnvironment(){};
   VIRTUALIZATION getVirtualization() const;
   bool is_cloud() const;
   bool is_docker() const;
   // detect if it's a kind of container technology (docker or lxc)
   bool is_container() const;
   CLOUD_PROVIDER getCloudProvider() const;
   const std::string& bios_vendor() const { return m_bios_vendor; };
   const std::string& sys_vendor() const { return m_sys_vendor; };
   const std::string& bios_description() const { return m_bios_description; };
   // VIRTUALIZATION_DETAIL getVirtualizationDetail() const; //as reported by the bios
};
}  // namespace os