IOLink  IOL_v1.6.1_release
MetadataNodeFactory.h
1 #pragma once
2 
3 #include <memory>
4 
5 #include <iolink/IOLinkAPI.h>
6 #include <iolink/VariantDataValue.h>
7 #include <iolink/metadata/MetadataNode.h>
8 
9 namespace iolink
10 {
11 
15 class IOLINK_API MetadataNodeFactory
16 {
17 public:
18  MetadataNodeFactory() = delete;
19  MetadataNodeFactory(const MetadataNodeFactory& other) = delete; // copy constructor
20  MetadataNodeFactory(MetadataNodeFactory&& other) = delete; // move constructor
21  MetadataNodeFactory& operator=(const MetadataNodeFactory& other) = delete; // copy assignment
22  MetadataNodeFactory& operator=(MetadataNodeFactory&& other) = delete; // move assignment
23 
30  static std::shared_ptr<MetadataNode> create(const std::string& key, std::shared_ptr<VariantDataValue> value);
31 };
32 
33 } // end namespace iolink