Zebra Bioptic Color Camera SDK For Linux  1.0.0-17
All Classes Functions Variables Enumerations Enumerator
device_manager.h
1 /*
2  * ©2019 Zebra Technologies Corp. and/or its affiliates.
3  */
4 #ifndef DEVICE_MANAGER_H_
5 #define DEVICE_MANAGER_H_
6 
7 #include <vector>
8 #include <mutex>
9 #include <memory>
10 
11 #include "device_manager_types.h"
12 
13 
14 namespace zebra {
15 
16 class DeviceManagerPlatformAdapter;
17 
22 {
23 public:
28 
32  DeviceManager(DeviceManagerPlatformAdapter& device_manager_platform_adapter);
33 
38  std::vector<DeviceInfo> EnumerateDevices();
39 
45 
51 
57 
63 
64 private:
65  std::shared_ptr<DeviceManagerPlatformAdapter> device_manager_platform_adapter_;
66  std::vector<std::reference_wrapper<DeviceAttachedListener>> device_attached_listeners_;
67  std::vector<std::reference_wrapper<DeviceDetachedListener>> device_detached_listeners_;
68 
69  std::mutex device_attached_listeners_mutex_;
70  std::mutex device_detached_listeners_mutex_;
71 
72  void OnPlatformAttached(const DeviceInfo& device_info);
73  void OnPlatformDetached(const DeviceInfo& device_info);
74 };
75 
76 }
77 #endif // DEVICE_MANAGER_H_
78 
zebra::DeviceManager::DeviceManager
DeviceManager()
zebra::DeviceManager::AddDeviceDetachedListener
void AddDeviceDetachedListener(DeviceDetachedListener &detached_listener)
zebra::DeviceDetachedListener
Definition: device_manager_types.h:37
zebra::DeviceManager::DeviceManager
DeviceManager(DeviceManagerPlatformAdapter &device_manager_platform_adapter)
zebra::DeviceManager
Definition: device_manager.h:22
zebra::DeviceManager::RemoveDeviceDetachedListener
void RemoveDeviceDetachedListener(DeviceDetachedListener &detached_listener)
zebra::DeviceManager::EnumerateDevices
std::vector< DeviceInfo > EnumerateDevices()
zebra::DeviceAttachedListener
Definition: device_manager_types.h:27
zebra::DeviceManager::AddDeviceAttachedListener
void AddDeviceAttachedListener(DeviceAttachedListener &attached_listener)
zebra::DeviceManager::RemoveDeviceAttachedListener
void RemoveDeviceAttachedListener(DeviceAttachedListener &attached_listener)
zebra::DeviceInfo
Definition: device_manager_types.h:15