IDS peak genericC++ v1.17.0
Loading...
Searching...
No Matches
peak_event_supporting_module.hpp
Go to the documentation of this file.
1
6
7#pragma once
8
10
13#include <peak/dll_interface/peak_dll_interface_util.hpp>
15
16#include <memory>
17
18
19namespace peak
20{
21namespace core
22{
23
31{
32public:
34 ~EventSupportingModule() override = default;
39
52 PEAK_COMMON_NO_DISCARD std::unique_ptr<EventController> EnableEvents(EventType type);
53
54protected:
56};
57
58} /* namespace core */
59} /* namespace peak */
60
61/* Implementation */
62namespace peak
63{
64namespace core
65{
66
67inline std::unique_ptr<EventController> EventSupportingModule::EnableEvents(EventType type)
68{
69 auto eventSupportingModuleHandle = EventSupportingModuleHandle();
70
71 auto eventControllerHandle = QueryNumericFromCInterfaceFunction<PEAK_EVENT_CONTROLLER_HANDLE>(
72 [&](PEAK_EVENT_CONTROLLER_HANDLE* _eventControllerHandle) {
74 eventSupportingModuleHandle, static_cast<PEAK_EVENT_TYPE>(type), _eventControllerHandle);
75 });
76
77 return std::make_unique<ClassCreator<EventController>>(eventControllerHandle);
78}
79
80} /* namespace core */
81} /* namespace peak */
EventSupportingModule(const EventSupportingModule &other)=delete
PEAK_COMMON_NO_DISCARD std::unique_ptr< EventController > EnableEvents(EventType type)
Enables events of the given event type.
Definition peak_event_supporting_module.hpp:67
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
EventType
Different types of events.
Definition peak_event.hpp:33
The "core" namespace contains the direct GenAPI and GenTL wrapper.
Definition peak_buffer.hpp:32
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition peak_buffer.hpp:29
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:183
struct PEAK_EVENT_SUPPORTING_MODULE * PEAK_EVENT_SUPPORTING_MODULE_HANDLE
Definition peak_backend.h:475
struct PEAK_EVENT_CONTROLLER * PEAK_EVENT_CONTROLLER_HANDLE
Definition peak_backend.h:479
#define PEAK_COMMON_NO_DISCARD
Definition peak_common_defines.h:89
#define PEAK_C_ABI_PREFIX
Definition peak_dll_defines.h:13