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
virtual const char * caption() const =0
Rect boundingBox() const
Definition: i_event_metadata.h:77
virtual const char * description() const =0
Definition: interface.h:48
virtual bool isActive() const =0
Definition: i_event_metadata.h:12
Definition: consuming_device_agent.cpp:25
virtual void getTrackId(Uuid *outValue) const =0
Definition: uuid.h:22
Definition: i_event_metadata.h:33
Definition: i_event_metadata.h:65
Uuid trackId() const
Definition: i_event_metadata.h:45
Definition: i_event_metadata.h:48
virtual const char * key() const =0
Definition: rect.h:9
virtual void getBoundingBox(Rect *outValue) const =0