nx_metadata_sdk 1.0 Metadata SDK

i_object_metadata_packet.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
7 #include "i_object_metadata.h"
8 #include "i_compound_metadata_packet.h"
9
10 namespace nx {
11 namespace sdk {
12 namespace analytics {
13
17 class IObjectMetadataPacket0: public Interface<IObjectMetadataPacket0, ICompoundMetadataPacket0>
18 {
19 public:
20 static auto interfaceId() { return makeId("nx::sdk::analytics::IObjectMetadataPacket"); }
21
23 protected: virtual const IObjectMetadata* getAt(int index) const override = 0;
24 public: Ptr<const IObjectMetadata> at(int index) const { return toPtr(getAt(index)); }
25 };
26
27 class IObjectMetadataPacket: public Interface<IObjectMetadataPacket, IObjectMetadataPacket0>
28 {
29 public:
30 static auto interfaceId() { return makeId("nx::sdk::analytics::IObjectMetadataPacket1"); }
31
32 virtual Flags flags() const = 0;
33 };
34 using IObjectMetadataPacket1 = IObjectMetadataPacket;
35
36 } // namespace analytics
37 } // namespace sdk
38 } // namespace nx
nx::sdk::analytics::IObjectMetadataPacket0::getAt
virtual const IObjectMetadata * getAt(int index) const override=0
nx::sdk::Interface
Definition: interface.h:49
nx::sdk::analytics::IObjectMetadataPacket
Definition: i_object_metadata_packet.h:27
nx::sdk::Ptr
Definition: ptr.h:18
nx::sdk::analytics::IObjectMetadata
Definition: i_object_metadata.h:18
nx::sdk::analytics::IObjectMetadataPacket0
Definition: i_object_metadata_packet.h:17
nx
Definition: apple_utils.h:6