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/analytics/i_object_track_info.h>
8 #include <nx/sdk/i_string_map.h>
9 #include <nx/sdk/interface.h>
10 #include <nx/sdk/uuid.h>
11 
12 namespace nx::sdk::analytics {
13 
17 class IAction: public Interface<IAction>
18 {
19 public:
20  static auto interfaceId() { return makeId("nx::sdk::analytics::IAction"); }
21 
23  virtual const char* actionId() const = 0;
24 
26  protected: virtual void getObjectTrackId(Uuid* outValue) const = 0;
28  public: Uuid objectTrackId() const { Uuid value; getObjectTrackId(&value); return value; }
29 
31  protected: virtual void getDeviceId(Uuid* outValue) const = 0;
33  public: Uuid deviceId() const { Uuid value; getDeviceId(&value); return value; }
34 
36  protected: virtual IObjectTrackInfo* getObjectTrackInfo() const = 0;
39 
41  virtual int64_t timestampUs() const = 0;
42 
44  protected: virtual const IStringMap* getParams() const = 0;
49  public: Ptr<const IStringMap> params() const { return Ptr(getParams()); }
50 
55  struct Result
56  {
59 
62 
64  bool useProxy = false;
65 
67  bool useDeviceCredentials = false;
68  };
69 };
70 using IAction0 = IAction;
71 
72 } // 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:28
Definition: interface.h:48
Definition: i_action.h:17
Definition: ptr.h:18
Definition: i_object_track_info.h:50
bool useProxy
Definition: i_action.h:64
Definition: i_action.h:55
Definition: consuming_device_agent.cpp:22
Definition: uuid.h:22
bool useDeviceCredentials
Definition: i_action.h:67
Ptr< IString > actionUrl
Definition: i_action.h:58
virtual void getDeviceId(Uuid *outValue) const =0
Ptr< const IStringMap > params() const
Definition: i_action.h:49
Ptr< IObjectTrackInfo > objectTrackInfo() const
Definition: i_action.h:38
Ptr< IString > messageToUser
Definition: i_action.h:61
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:33