nx_metadata_sdk  1.0
Metadata SDK
i_action.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 <cstdint>
6 
7 #include <nx/sdk/interface.h>
8 
9 #include <nx/sdk/uuid.h>
10 #include <nx/sdk/i_string_map.h>
11 #include <nx/sdk/analytics/i_object_track_info.h>
12 
13 namespace nx {
14 namespace sdk {
15 namespace analytics {
16 
20 class IAction: public Interface<IAction>
21 {
22 public:
23  static auto interfaceId() { return makeId("nx::sdk::analytics::IAction"); }
24 
26  virtual const char* actionId() const = 0;
27 
29  protected: virtual void getObjectTrackId(Uuid* outValue) const = 0;
30  public: Uuid objectTrackId() const { Uuid value; getObjectTrackId(&value); return value; }
31 
33  protected: virtual void getDeviceId(Uuid* outValue) const = 0;
34  public: Uuid deviceId() const { Uuid value; getDeviceId(&value); return value; }
35 
37  protected: virtual IObjectTrackInfo* getObjectTrackInfo() const = 0;
38  public: Ptr<IObjectTrackInfo> objectTrackInfo() const { return toPtr(getObjectTrackInfo()); }
39 
41  virtual int64_t timestampUs() const = 0;
42 
47  protected: virtual const IStringMap* getParams() const = 0;
48  public: Ptr<const IStringMap> params() const { return toPtr(getParams()); }
49 
54  struct Result
55  {
58 
61  };
62 };
63 
64 } // namespace analytics
65 } // namespace sdk
66 } // namespace nx
virtual void getObjectTrackId(Uuid *outValue) const =0
Definition: i_string_map.h:10
virtual int64_t timestampUs() const =0
virtual const IStringMap * getParams() const =0
Definition: interface.h:28
Definition: i_action.h:20
Definition: ptr.h:18
Definition: i_object_track_info.h:16
Definition: i_action.h:54
Definition: uuid.h:21
Definition: apple_utils.h:6
Ptr< IString > actionUrl
Definition: i_action.h:57
virtual void getDeviceId(Uuid *outValue) const =0
Ptr< IString > messageToUser
Definition: i_action.h:60
virtual const char * actionId() const =0
virtual IObjectTrackInfo * getObjectTrackInfo() const =0
static constexpr const InterfaceId * makeId(const char(&charArray)[len])
Definition: i_ref_countable.h:78