nx_server_plugin_sdk 1.0 Server Plugin SDK

i_event_metadata.h
1 // Copyright 2018-present Network Optix, Inc. Licensed under MPL 2.0: www.mozilla.org/MPL/2.0/
2
3 #pragma once
4
5 #include <nx/sdk/analytics/rect.h>
6 #include <nx/sdk/interface.h>
7
8 #include "i_metadata.h"
9
10 namespace nx::sdk::analytics {
11
12 class IEventMetadata0: public Interface<IEventMetadata0, IMetadata0>
13 {
14 public:
15 static auto interfaceId() { return makeId("nx::sdk::analytics::IEventMetadata"); }
16
20 virtual const char* caption() const = 0;
21
25 virtual const char* description() const = 0;
26
30 virtual bool isActive() const = 0;
31 };
32
33 class IEventMetadata1: public Interface<IEventMetadata1, IEventMetadata0>
34 {
35 public:
36 static auto interfaceId() { return makeId("nx::sdk::analytics::IEventMetadata1"); }
37
39 protected: virtual void getTrackId(Uuid* outValue) const = 0;
45 public: Uuid trackId() const { Uuid value; getTrackId(&value); return value; }
46 };
47
48 class IEventMetadata2: public Interface<IEventMetadata2, IEventMetadata1>
49 {
50 public:
51 static auto interfaceId() { return makeId("nx::sdk::analytics::IEventMetadata2"); }
52
62 virtual const char* key() const = 0;
63 };
64
65 class IEventMetadata: public Interface<IEventMetadata, IEventMetadata2>
66 {
67 public:
68 static auto interfaceId() { return makeId("nx::sdk::analytics::IEventMetadata3"); }
69
71 protected: virtual void getBoundingBox(Rect* outValue) const = 0;
77 public: Rect boundingBox() const { Rect value; getBoundingBox(&value); return value; }
78 };
79 using IEventMetadata3 = IEventMetadata;
80
81 } // namespace nx::sdk::analytics
nx::sdk::analytics::IEventMetadata0::caption
virtual const char * caption() const =0
nx::sdk::analytics::IEventMetadata::boundingBox
Rect boundingBox() const
Definition: i_event_metadata.h:77
nx::sdk::analytics::IEventMetadata0::description
virtual const char * description() const =0
nx::sdk::Interface
Definition: interface.h:48
nx::sdk::analytics::IEventMetadata0::isActive
virtual bool isActive() const =0
nx::sdk::analytics::IEventMetadata0
Definition: i_event_metadata.h:12
nx::sdk::analytics
Definition: consuming_device_agent.cpp:25
nx::sdk::analytics::IEventMetadata1::getTrackId
virtual void getTrackId(Uuid *outValue) const =0
nx::sdk::Uuid
Definition: uuid.h:22
nx::sdk::analytics::IEventMetadata1
Definition: i_event_metadata.h:33
nx::sdk::analytics::IEventMetadata
Definition: i_event_metadata.h:65
nx::sdk::analytics::IEventMetadata1::trackId
Uuid trackId() const
Definition: i_event_metadata.h:45
nx::sdk::analytics::IEventMetadata2
Definition: i_event_metadata.h:48
nx::sdk::analytics::IEventMetadata2::key
virtual const char * key() const =0
nx::sdk::analytics::Rect
Definition: rect.h:9
nx::sdk::analytics::IEventMetadata::getBoundingBox
virtual void getBoundingBox(Rect *outValue) const =0