DeviceModelProvider.hpp
1 #pragma once
2 #include <score/plugins/Interface.hpp>
3 #include <score/plugins/InterfaceList.hpp>
4 
5 #include <score_lib_device_export.h>
6 namespace score
7 {
8 struct DocumentContext;
9 }
10 namespace Device
11 {
12 class NodeBasedItemModel;
13 
14 class SCORE_LIB_DEVICE_EXPORT DeviceModelProvider : public score::InterfaceBase
15 {
16  SCORE_INTERFACE(DeviceModelProvider, "2f641f1d-46f8-4c88-9038-7e84957e4a03")
17 
18 public:
19  ~DeviceModelProvider() override;
21  getNodeModel(const score::DocumentContext& ctx) const noexcept = 0;
22 };
23 
24 class SCORE_LIB_DEVICE_EXPORT DeviceModelProviderList final
25  : public score::InterfaceList<DeviceModelProvider>
26 {
27 public:
28  ~DeviceModelProviderList() override;
29  DeviceModelProvider* getBestProvider(const score::DocumentContext& ctx) const noexcept;
30 };
31 }
Definition: DeviceModelProvider.hpp:15
Definition: DeviceModelProvider.hpp:26
Definition: NodeBasedItemModel.hpp:18
Base class for plug-in interfaces.
Definition: Interface.hpp:52
InterfaceList Default implementation of InterfaceListBase.
Definition: InterfaceList.hpp:80
Manipulation of Devices from Qt.
Definition: AddressSettings.cpp:14
Base toolkit upon which the software is built.
Definition: Application.cpp:90
Definition: DocumentContext.hpp:18