IDS peak genericC++ v1.9.0
Loading...
Searching...
No Matches
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
22namespace peak
23{
24namespace core
25{
26
34{
35public:
37 ~EventSupportingModule() override = default;
42
55 std::unique_ptr<EventController> EnableEvents(EventType type);
56
57protected:
59};
60
61} /* namespace core */
62} /* namespace peak */
63
64/* Implementation */
65namespace peak
66{
67namespace core
68{
69
70inline std::unique_ptr<EventController> EventSupportingModule::EnableEvents(EventType type)
71{
72 auto eventSupportingModuleHandle = EventSupportingModuleHandle();
73
74 auto eventControllerHandle = QueryNumericFromCInterfaceFunction<PEAK_EVENT_CONTROLLER_HANDLE>(
75 [&](PEAK_EVENT_CONTROLLER_HANDLE* _eventControllerHandle) {
77 eventSupportingModuleHandle, static_cast<PEAK_EVENT_TYPE>(type), _eventControllerHandle);
78 });
79
80 return std::make_unique<ClassCreator<EventController>>(eventControllerHandle);
81}
82
83} /* namespace core */
84} /* namespace peak */
The base class for all modules being able to raise events.
Definition peak_event_supporting_module.hpp:34
EventSupportingModule(const EventSupportingModule &other)=delete
std::unique_ptr< EventController > EnableEvents(EventType type)
Enables events of the given event type.
Definition peak_event_supporting_module.hpp:70
EventSupportingModule & operator=(EventSupportingModule &&other)=delete
~EventSupportingModule() override=default
EventSupportingModule(EventSupportingModule &&other)=delete
EventSupportingModule & operator=(const EventSupportingModule &other)=delete
virtual PEAK_EVENT_SUPPORTING_MODULE_HANDLE EventSupportingModuleHandle() const =0
Represents an extended GenTL port.
Definition peak_module.hpp:38
EventType
Different types of events.
Definition peak_event.hpp:35
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition peak_dynamic_loader.h:33
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.
int32_t PEAK_EVENT_TYPE
Definition peak_backend.h:168
struct PEAK_EVENT_SUPPORTING_MODULE * PEAK_EVENT_SUPPORTING_MODULE_HANDLE
Definition peak_backend.h:460
struct PEAK_EVENT_CONTROLLER * PEAK_EVENT_CONTROLLER_HANDLE
Definition peak_backend.h:464
#define PEAK_C_ABI_PREFIX
Definition peak_dll_defines.h:16