#ifndef DEVICEMANAGER_H #define DEVICEMANAGER_H #include #include #include #include #include #include #include namespace hk { namespace device { class DeviceManager { public: static DeviceManager& getInstance() { static DeviceManager instance; return instance; } std::string readDeviceFile(const std::string& filename); void collateAllDeviceSpecs(void); void parseAllDeviceSpecs(void); static const std::string stringifyDeviceSpecs(void); private: DeviceManager() = default; ~DeviceManager() = default; DeviceManager(const DeviceManager&) = delete; DeviceManager& operator=(const DeviceManager&) = delete; public: std::string allDeviceSpecs; static std::vector> interoceptorDeviceSpecs; static std::vector> extrospectorDeviceSpecs; static std::vector> senseDeviceSpecs; }; } // namespace device } // namespace hk #endif // DEVICEMANAGER_H