cpp-msgpack-rpc
0.2.0
An RPC library implementing MessagePack RPC.
Toggle main menu visibility
Loading...
Searching...
No Matches
config_parser.cpp
Go to the documentation of this file.
1
/*
2
* Copyright 2023 MusicScience37 (Kenta Kabashima)
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
20
#include "
msgpack_rpc/config/config_parser.h
"
21
22
#include <fmt/format.h>
23
24
#include "
msgpack_rpc/common/msgpack_rpc_exception.h
"
25
#include "
msgpack_rpc/common/status_code.h
"
26
#include "
msgpack_rpc/config/toml/parse_toml.h
"
27
28
namespace
msgpack_rpc::config
{
29
30
ConfigParser::ConfigParser
() =
default
;
31
32
void
ConfigParser::parse
(std::string_view file_path) {
33
toml::parse_toml
(
34
file_path,
logging_configs_
,
client_configs_
,
server_configs_
);
35
}
36
37
const
LoggingConfig
&
ConfigParser::logging_config
(std::string_view name)
const
{
38
try
{
39
return
logging_configs_
.at(std::string(name));
40
}
catch
(...) {
41
throw
MsgpackRPCException
(StatusCode::INVALID_ARGUMENT,
42
fmt::format(
"Configuration of logging not found: {}."
, name));
43
}
44
}
45
46
const
ClientConfig
&
ConfigParser::client_config
(std::string_view name)
const
{
47
try
{
48
return
client_configs_
.at(std::string(name));
49
}
catch
(...) {
50
throw
MsgpackRPCException
(StatusCode::INVALID_ARGUMENT,
51
fmt::format(
"Configuration of client not found: {}."
, name));
52
}
53
}
54
55
const
ServerConfig
&
ConfigParser::server_config
(std::string_view name)
const
{
56
try
{
57
return
server_configs_
.at(std::string(name));
58
}
catch
(...) {
59
throw
MsgpackRPCException
(StatusCode::INVALID_ARGUMENT,
60
fmt::format(
"Configuration of server not found: {}."
, name));
61
}
62
}
63
64
}
// namespace msgpack_rpc::config
msgpack_rpc::MsgpackRPCException
Class of exceptions in cpp-msgpack-rpc library.
Definition
msgpack_rpc_exception.h:35
msgpack_rpc::config::ClientConfig
Class of configuration of clients.
Definition
client_config.h:38
msgpack_rpc::config::ConfigParser::logging_configs_
std::unordered_map< std::string, LoggingConfig > logging_configs_
Configurations of logging.
Definition
config_parser.h:79
msgpack_rpc::config::ConfigParser::server_configs_
std::unordered_map< std::string, ServerConfig > server_configs_
Configurations of servers.
Definition
config_parser.h:85
msgpack_rpc::config::ConfigParser::client_config
const ClientConfig & client_config(std::string_view name) const
Get a configuration of client.
Definition
config_parser.cpp:46
msgpack_rpc::config::ConfigParser::client_configs_
std::unordered_map< std::string, ClientConfig > client_configs_
Configurations of clients.
Definition
config_parser.h:82
msgpack_rpc::config::ConfigParser::logging_config
const LoggingConfig & logging_config(std::string_view name) const
Get a configuration of logging.
Definition
config_parser.cpp:37
msgpack_rpc::config::ConfigParser::server_config
const ServerConfig & server_config(std::string_view name) const
Get a configuration of server.
Definition
config_parser.cpp:55
msgpack_rpc::config::ConfigParser::parse
void parse(std::string_view file_path)
Parse a file.
Definition
config_parser.cpp:32
msgpack_rpc::config::ConfigParser::ConfigParser
ConfigParser()
Constructor.
msgpack_rpc::config::LoggingConfig
Class of Logging configuration.
Definition
logging_config.h:34
msgpack_rpc::config::ServerConfig
Class of configurations of servers.
Definition
server_config.h:35
config_parser.h
Definition of ConfigParser class.
msgpack_rpc_exception.h
Definition of MsgpackRPCException class.
msgpack_rpc::config
Namespace of configurations.
Definition
client_config.h:32
msgpack_rpc::config::toml::parse_toml
void parse_toml(std::string_view file_path, std::unordered_map< std::string, LoggingConfig > &logging_configs, std::unordered_map< std::string, ClientConfig > &client_configs, std::unordered_map< std::string, ServerConfig > &server_configs)
Parse configurations from a TOML file.
Definition
parse_toml.cpp:32
parse_toml.h
Definition of parse_toml functions.
status_code.h
Definition of StatusCode enumeration.
src
msgpack_rpc
config
config_parser.cpp
Generated on
for cpp-msgpack-rpc by
1.18.0