NRP Core  1.4.1
proto_ops_manager.h
Go to the documentation of this file.
1 /* * NRP Core - Backend infrastructure to synchronize simulations
2  *
3  * Copyright 2020-2023 NRP Team
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * This project has received funding from the European Union’s Horizon 2020
18  * Framework Programme for Research and Innovation under the Specific Grant
19  * Agreement No. 945539 (Human Brain Project SGA3).
20  */
21 
22 #ifndef PROTO_PLUGIN_MANAGER_H
23 #define PROTO_PLUGIN_MANAGER_H
24 
27 
35 {
36 public:
37 
38  // Delete move and copy operators. This ensures this class is a singleton
39  ProtoOpsManager(const ProtoOpsManager &) = delete;
40  ProtoOpsManager(ProtoOpsManager &&) = delete;
41 
42  ProtoOpsManager &operator=(const ProtoOpsManager &) = delete;
44 
48  static ProtoOpsManager &getInstance();
49 
53  static void resetInstance();
54 
60  std::unique_ptr<protobuf_ops::NRPProtobufOpsIface> loadProtobufPlugin(const std::string &pluginLibFile);
61 
62 
63 private:
64 
65  ProtoOpsManager() = default;
66  static std::unique_ptr<ProtoOpsManager> _instance;
67 
68 };
69 
70 #endif // PROTO_PLUGIN_MANAGER_H
ProtoOpsManager::resetInstance
static void resetInstance()
Reset singleton instance.
Definition: proto_ops_manager.cpp:63
ProtoOpsManager
Singleton class which loads Protobuf conversion libraries.
Definition: proto_ops_manager.h:34
ProtoOpsManager::loadProtobufPlugin
std::unique_ptr< protobuf_ops::NRPProtobufOpsIface > loadProtobufPlugin(const std::string &pluginLibFile)
Load a Protobuf conversion plugin from a given library.
Definition: proto_ops_manager.cpp:35
protobuf_ops.h
plugin_manager.h
ProtoOpsManager::operator=
ProtoOpsManager & operator=(const ProtoOpsManager &)=delete
PluginManager
Definition: plugin_manager.h:29
ProtoOpsManager::getInstance
static ProtoOpsManager & getInstance()
Get singleton instance of ProtoOpsManager.
Definition: proto_ops_manager.cpp:55