nx_cloud_storage_sdk  1.0
Cloud Storage SDK
algorithm.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 "data.h"
6 
7 namespace nx::sdk::cloud_storage {
8 
9 bool bookmarkMatches(const Bookmark& bookmark, const BookmarkFilter& filter);
10 void sortAndLimitBookmarks(const BookmarkFilter& filter, std::vector<Bookmark>* outBookmarks);
11 
12 bool motionMaches(const Motion& motion, const MotionFilter& filter);
13 TimePeriodList sortAndLimitMotion(const MotionFilter& filter, TimePeriodList motion);
14 
15 bool objectTrackMatches(const ObjectTrack& objectTrack, const AnalyticsFilter& filter);
16 void sortAndLimitTimePeriods(
17  SortOrder order, std::optional<int> limit, TimePeriodList* outTimePeriods);
18 
19 std::vector<uint8_t> fromBase64(const std::string& data);
20 std::string toBase64(const std::vector<uint8_t>& data);
21 std::string toBase64(const uint8_t* data, int size);
22 
23 nx::sdk::cloud_storage::IDeviceAgent* findDeviceAgentById(
24  const std::string& id,
25  const std::vector<nx::sdk::Ptr<nx::sdk::cloud_storage::IDeviceAgent>>& devices);
26 
27 template<typename T>
28 std::string dumpObjects(const std::vector<T>& objects)
29 {
30  std::vector<nx::kit::Json> jsons;
31  for (const auto& entry: objects)
32  jsons.push_back(nx::kit::Json(entry));
33 
34  return nx::kit::Json(jsons).dump();
35 }
36 
37 std::vector<std::string> split(const std::string& original, const std::string& separator);
38 
39 } // namespace nx::sdk::cloud_storage
Definition: json.cpp:80
Definition: ptr.h:18
Definition: i_device_agent.h:21
Definition: algorithm.cpp:8