18#include <usGetModuleContext.h>
19#include <usModuleContext.h>
23 : m_ServiceRegistration()
24 , m_TrackingDeviceTypeInformations()
30 std::vector<TrackingDeviceTypeInformation*>::iterator iter = m_TrackingDeviceTypeInformations.begin();
32 for (; iter != m_TrackingDeviceTypeInformations.end(); iter++)
37 m_TrackingDeviceTypeInformations.clear();
42 us::ModuleContext* context = us::GetModuleContext();
44 m_ServiceRegistration = context->RegisterService(
this);
49 if (m_ServiceRegistration !=
nullptr) m_ServiceRegistration.Unregister();
50 m_ServiceRegistration = 0;
55 if (typeInformation !=
nullptr)
57 m_TrackingDeviceTypeInformations.push_back(typeInformation);
63 for (
auto deviceType : m_TrackingDeviceTypeInformations)
65 if (deviceType->GetTrackingDeviceName() == type)
76 for (
auto deviceType : m_TrackingDeviceTypeInformations)
78 if (deviceType->GetTrackingDeviceName() == type)
80 return deviceType->m_TrackingDeviceData;
84 return std::vector<TrackingDeviceData>();
89 if (GetDeviceDataForLine(type).empty())
94 return GetDeviceDataForLine(type).front();
99 for (
auto deviceType : m_TrackingDeviceTypeInformations)
101 for (
auto deviceData : deviceType->m_TrackingDeviceData)
103 if (deviceData.Model == modelName)
115 std::vector<std::string> names;
116 for (
auto deviceType : m_TrackingDeviceTypeInformations)
118 names.push_back(deviceType->GetTrackingDeviceName());
~TrackingDeviceTypeCollection()
std::vector< TrackingDeviceData > GetDeviceDataForLine(TrackingDeviceType type)
void RegisterTrackingDeviceType(TrackingDeviceTypeInformation *typeInformation)
TrackingDeviceTypeCollection()
TrackingDeviceData GetFirstCompatibleDeviceDataForLine(TrackingDeviceType type)
virtual void UnRegisterMicroservice()
Registers this object as a Microservice, making it available to every module and/or plugin.
TrackingDeviceData GetDeviceDataByName(const std::string &modelName)
TrackingDeviceTypeInformation * GetTrackingDeviceTypeInformation(TrackingDeviceType type)
virtual void RegisterAsMicroservice()
Registers this object as a Microservice, making it available to every module and/or plugin....
std::vector< std::string > GetTrackingDeviceTypeNames()
std::string TrackingDeviceType