nx_metadata_sdk  1.0
Metadata SDK
i_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/interface.h>
6 #include <nx/sdk/i_attribute.h>
7 
8 namespace nx::sdk::analytics {
9 
14 class IMetadata: public Interface<IMetadata>
15 {
16 public:
17  static auto interfaceId() { return makeId("nx::sdk::analytics::IMetadata"); }
18 
22  virtual const char* typeId() const = 0;
23 
27  virtual float confidence() const = 0;
28 
30  protected: virtual const IAttribute* getAttribute(int index) const = 0;
40  public: Ptr<const IAttribute> attribute(int index) const { return Ptr(getAttribute(index)); }
41 
45  virtual int attributeCount() const = 0;
46 };
47 using IMetadata0 = IMetadata;
48 
49 } // namespace nx::sdk::analytics
Definition: interface.h:48
Definition: ptr.h:18
Definition: i_metadata.h:14
Definition: consuming_device_agent.cpp:22
virtual float confidence() const =0
Definition: i_attribute.h:9
Ptr< const IAttribute > attribute(int index) const
Definition: i_metadata.h:40
virtual int attributeCount() const =0
virtual const char * typeId() const =0
static constexpr const InterfaceId * makeId(const char(&charArray)[len])
Definition: i_ref_countable.h:76
virtual const IAttribute * getAttribute(int index) const =0