nx_metadata_sdk 1.0 Metadata SDK

module.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 <set>
6 #include <string>
7 #include <vector>
8 #include <memory>
9 #include <mutex>
10
11 #include "attribute_generator.h"
12
13 #include <nx/vms_server_plugins/analytics/stub/deprecated_object_detection/objects/abstract_object.h>
14
15 namespace nx {
16 namespace vms_server_plugins {
17 namespace analytics {
18 namespace stub {
19 namespace modules {
20 namespace standard_taxonomy {
21
22 class Module
23 {
24 public:
25 Module();
26
27 std::vector<std::string> settingsSections() const;
28
29 std::vector<std::string> supportedObjectTypeIds() const;
30
31 std::vector<std::string> supportedTypes() const;
32
33 std::vector<std::string> typeLibraryObjectTypes() const;
34
35 std::vector<std::string> typeLibraryEnumTypes() const;
36
37 std::vector<std::string> typeLibraryColorTypes() const;
38
39 std::unique_ptr<AbstractObject> generateObject() const;
40
41 bool needToGenerateObjects() const;
42
43 void setSettings(std::map<std::string, std::string> settings);
44
45 private:
46 mutable std::mutex m_mutex;
47
48 std::unique_ptr<AttributeGenerator> m_attributeGenerator;
49
50 std::set<std::string> m_objectTypeIdsToGenerate;
51 };
52
53 } // namespace standard_taxonomy
54 } // namespace modules
55 } // namespace stub
56 } // namespace analytics
57 } // namespace vms_server_plugins
58 } // namespace nx
nx
Definition: apple_utils.h:6
nx::vms_server_plugins::analytics::stub::modules::standard_taxonomy::Module
Definition: module.h:22