25 #ifndef PLATFORM_BASE_HPP__
26 #define PLATFORM_BASE_HPP__
31 #include "NotificationWorker.hpp"
32 #include "device/DeviceBase.hpp"
37 class NotificationWorker;
47 class PlatformBase :
public std::enable_shared_from_this<PlatformBase>
50 typedef std::shared_ptr<PlatformBase> Shared;
51 typedef std::set<DeviceBase::DeviceType> DeviceTypeList;
52 typedef std::list<DeviceBase::Shared> DeviceList;
56 virtual DeviceTypeList getSupportedDevices()
const = 0;
58 virtual DeviceList generateDevices(
const DeviceTypeList &deviceTypes) = 0;
62 virtual void setNotificationWorker(
const NotificationWorker::Shared &worker);
64 void notify(
const DeviceId &
id);
65 void notify(std::set<DeviceId> &&ids);
68 std::weak_ptr<NotificationWorker> m_notificationWorker;
main motion-lib namespace