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_compound_metadata_packet.h"
8 #include "i_object_metadata.h"
9 
10 namespace nx::sdk::analytics {
11 
15 class IObjectMetadataPacket0: public Interface<IObjectMetadataPacket0, ICompoundMetadataPacket0>
16 {
17 public:
18  static auto interfaceId() { return makeId("nx::sdk::analytics::IObjectMetadataPacket"); }
19 
21  protected: virtual const IObjectMetadata* getAt(int index) const override = 0;
22  public: Ptr<const IObjectMetadata> at(int index) const { return Ptr(getAt(index)); }
23 };
24 
25 class IObjectMetadataPacket: public Interface<IObjectMetadataPacket, IObjectMetadataPacket0>
26 {
27 public:
28  static auto interfaceId() { return makeId("nx::sdk::analytics::IObjectMetadataPacket1"); }
29 
30  virtual Flags flags() const = 0;
31 };
33 
34 } // namespace nx::sdk::analytics
virtual const IObjectMetadata * getAt(int index) const override=0
Definition: interface.h:48
Definition: i_object_metadata_packet.h:25
Definition: ptr.h:18
Definition: consuming_device_agent.cpp:22
Definition: i_object_metadata.h:16
Definition: i_object_metadata_packet.h:15