14namespace opcua::services::detail {
16struct MonitoredItemContext : CallbackAdapter {
20 std::function<void(
IntegerId subId,
IntegerId monId,
const DataValue&)> dataChangeCallback;
21 std::function<void(
IntegerId subId,
IntegerId monId, Span<const Variant>)> eventCallback;
24 static void dataChangeCallbackNativeServer(
29 [[maybe_unused]]
void* nodeContext,
30 [[maybe_unused]] uint32_t attributeId,
33 if (monContext !=
nullptr && value !=
nullptr) {
34 auto* self =
static_cast<MonitoredItemContext*
>(monContext);
35 if (!self->inserted) {
38 self->invoke(self->dataChangeCallback, 0U, monId, asWrapper<DataValue>(*value));
42 static void dataChangeCallbackNativeClient(
45 [[maybe_unused]]
void* subContext,
50 if (monContext !=
nullptr && value !=
nullptr) {
51 auto* self =
static_cast<MonitoredItemContext*
>(monContext);
52 if (!self->inserted) {
55 self->invoke(self->dataChangeCallback, subId, monId, asWrapper<DataValue>(*value));
59 static void eventCallbackNative(
62 [[maybe_unused]]
void* subContext,
68 if (monContext !=
nullptr) {
69 auto* self =
static_cast<MonitoredItemContext*
>(monContext);
70 if (!self->inserted) {
77 Span<const Variant>{asWrapper<Variant>(eventFields), nEventFields}
82 static void deleteCallbackNative(
85 [[maybe_unused]]
void* subContext,
89 if (monContext !=
nullptr) {
90 auto* self =
static_cast<MonitoredItemContext*
>(monContext);
91 self->invoke(self->deleteCallback, subId, monId);
uint32_t IntegerId
IntegerId.