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
25
#include "
nrp_general_library/plugin_system/plugin_manager.h
"
26
#include "
nrp_protobuf/proto_ops/protobuf_ops.h
"
27
34
class
ProtoOpsManager
:
public
PluginManager
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
;
43
ProtoOpsManager
&
operator=
(
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
nrp_protobuf
nrp_protobuf
proto_ops
proto_ops_manager.h
Generated by
1.8.17