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 <stdint.h>
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::sdk::analytics {
14 
18 class IAction: public Interface<IAction>
19 {
20 public:
21  static auto interfaceId() { return makeId("nx::sdk::analytics::IAction"); }
22 
24  virtual const char* actionId() const = 0;
25 
27  protected: virtual void getObjectTrackId(Uuid* outValue) const = 0;
29  public: Uuid objectTrackId() const { Uuid value; getObjectTrackId(&value); return value; }
30 
32  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;
40 
42  virtual int64_t timestampUs() const = 0;
43 
45  protected: virtual const IStringMap* getParams() const = 0;
50  public: Ptr<const IStringMap> params() const { return Ptr(getParams()); }
51 
56  struct Result
57  {
60 
63  };
64 };
65 using IAction0 = IAction;
66 
67 } // namespace nx::sdk::analytics
virtual void getObjectTrackId(Uuid *outValue) const =0
Definition: i_string_map.h:9
virtual int64_t timestampUs() const =0
virtual const IStringMap * getParams() const =0
Uuid objectTrackId() const
Definition: i_action.h:29
Definition: interface.h:48
Definition: i_action.h:18
Definition: ptr.h:18
Definition: i_object_track_info.h:51
Definition: i_action.h:56
Definition: consuming_device_agent.cpp:22
Definition: uuid.h:21
Ptr< IString > actionUrl
Definition: i_action.h:59
virtual void getDeviceId(Uuid *outValue) const =0
Ptr< const IStringMap > params() const
Definition: i_action.h:50
Ptr< IObjectTrackInfo > objectTrackInfo() const
Definition: i_action.h:39
Ptr< IString > messageToUser
Definition: i_action.h:62
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:76
Uuid deviceId() const
Definition: i_action.h:34