IDS peak genericC++  v1.6.2
peak_event_supporting_module.hpp
Go to the documentation of this file.
1 
11 #pragma once
12 
13 
16 #include <peak/dll_interface/peak_dll_interface_util.hpp>
18 
19 #include <memory>
20 
21 
22 namespace peak
23 {
24 namespace core
25 {
26 
34 {
35 public:
36  EventSupportingModule() = default;
37  ~EventSupportingModule() override = default;
38  EventSupportingModule(const EventSupportingModule& other) = delete;
42 
54  std::unique_ptr<EventController> EnableEvents(EventType type);
55 
56 protected:
58 };
59 
60 } /* namespace core */
61 } /* namespace peak */
62 
63 /* Implementation */
64 namespace peak
65 {
66 namespace core
67 {
68 
69 inline std::unique_ptr<EventController> EventSupportingModule::EnableEvents(EventType type)
70 {
71  auto eventSupportingModuleHandle = EventSupportingModuleHandle();
72 
73  auto eventControllerHandle = QueryNumericFromCInterfaceFunction<PEAK_EVENT_CONTROLLER_HANDLE>(
74  [&](PEAK_EVENT_CONTROLLER_HANDLE* _eventControllerHandle) {
76  eventSupportingModuleHandle, static_cast<PEAK_EVENT_TYPE>(type), _eventControllerHandle);
77  });
78 
79  return std::make_unique<ClassCreator<EventController>>(eventControllerHandle);
80 }
81 
82 } /* namespace core */
83 } /* namespace peak */
virtual PEAK_EVENT_SUPPORTING_MODULE_HANDLE EventSupportingModuleHandle() const =0
EventType
Different types of events.
Definition: peak_event.hpp:34
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition: peak_dynamic_loader.h:32
struct PEAK_EVENT_SUPPORTING_MODULE * PEAK_EVENT_SUPPORTING_MODULE_HANDLE
Definition: peak_backend.h:457
struct PEAK_EVENT_CONTROLLER * PEAK_EVENT_CONTROLLER_HANDLE
Definition: peak_backend.h:461
PEAK_C_API PEAK_EventSupportingModule_EnableEvents(PEAK_EVENT_SUPPORTING_MODULE_HANDLE eventSupportingModuleHandle, PEAK_EVENT_TYPE eventType, PEAK_EVENT_CONTROLLER_HANDLE *eventControllerHandle)
Tells the given event-supporting module to enable events of the given type.
EventSupportingModule & operator=(const EventSupportingModule &other)=delete
~EventSupportingModule() override=default
Represents an extended GenTL port.
Definition: peak_module.hpp:37
#define PEAK_C_ABI_PREFIX
Definition: peak_dll_defines.h:16
std::unique_ptr< EventController > EnableEvents(EventType type)
Enables events of the given event type.
Definition: peak_event_supporting_module.hpp:69
The base class for all modules being able to raise events.
Definition: peak_event_supporting_module.hpp:33