diff --git a/hcore/deviceManager/deviceManager.cpp b/hcore/deviceManager/deviceManager.cpp index 6e72332..c91b7fe 100644 --- a/hcore/deviceManager/deviceManager.cpp +++ b/hcore/deviceManager/deviceManager.cpp @@ -5,31 +5,42 @@ #include #include #include -#include #include -void DeviceManager::handleDeviceSpecifiers(const OptionParser& options) + +std::vector + DeviceManager::interoceptorDeviceSpecs; +std::vector + DeviceManager::extrospectorDeviceSpecs; + +std::ostream& operator<<( + std::ostream& os, const DeviceManager::SensorDeviceSpec& spec) { - std::vector deviceStrings; - deviceStrings.insert(deviceStrings.end(), options.extro.begin(), - options.extro.end()); - deviceStrings.insert(deviceStrings.end(), options.intero.begin(), - options.intero.end()); - deviceStrings.insert(deviceStrings.end(), options.actuator.begin(), - options.actuator.end()); - - for (const auto& file : options.deviceSpecFiles) { - std::vector fileDeviceStrings = readDeviceFile(file); - deviceStrings.insert(deviceStrings.end(), fileDeviceStrings.begin(), - fileDeviceStrings.end()); + os << "Device: " << spec.sensorType << ", Implexor: " + << spec.implexor << ", API: " << spec.api + << ", API Params: ("; + for (auto it = spec.apiParams.begin(); it != spec.apiParams.end(); ++it) { + os << *it << (it + 1 == spec.apiParams.end() ? "" : " "); } - - std::vector> deviceSpecifiers = - parseDeviceSpecifiers(deviceStrings); - - // Use deviceSpecifiers with the device manager - for (const auto& specifier : deviceSpecifiers) { - std::cout << "Device: " << specifier.first << ", Specifier: " - << specifier.second << std::endl; + os << "), Server: " << spec.server << ", Server Params: ("; + for (auto it = spec.serverParams.begin(); it != spec.serverParams.end(); ++it) { + os << *it << (it + 1 == spec.serverParams.end() ? "" : " "); } + os << "), Device Selector: " << spec.deviceSelector << std::endl; + return os; +} + +const std::string DeviceManager::printDeviceSpecs(void) +{ + std::ostringstream oss; + + for (const auto& spec : DeviceManager::interoceptorDeviceSpecs) { + oss << "Interoceptor " << spec; + } + + for (const auto& spec : DeviceManager::extrospectorDeviceSpecs) { + oss << "Extrospector " << spec; + } + + return oss.str(); }