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
Definition: apple_utils.h:6