cpp-msgpack-rpc
0.2.0
An RPC library implementing MessagePack RPC.
Toggle main menu visibility
Loading...
Searching...
No Matches
status.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/common/status.h
"
21
22
#include <memory>
23
#include <string>
24
25
#include "
msgpack_rpc/common/status_code.h
"
26
27
namespace
msgpack_rpc
{
28
inline
namespace
common
{
29
31
struct
Status::Data
{
33
StatusCode
code
;
34
36
std::string
message
;
37
45
static
std::shared_ptr<Data>
create
(
46
StatusCode
code
, std::string_view
message
) {
47
if
(
code
==
StatusCode::SUCCESS
) {
48
return
nullptr
;
49
}
50
return
std::make_shared<Data>(
Data
{
code
, std::string(
message
)});
51
}
52
};
53
54
Status::Status
() noexcept = default;
55
56
Status
::
Status
(
StatusCode
code
,
std
::string_view
message
)
57
:
data_
(
Data
::create(
code
,
message
)) {}
58
59
Status::Status
(
const
Status
&)
noexcept
=
default
;
60
61
Status::Status
(
Status
&&) noexcept = default;
62
63
Status
&
Status
::operator=(const
Status
&) noexcept = default;
64
65
Status
&
Status
::operator=(
Status
&&) noexcept = default;
66
67
Status
::~
Status
() noexcept = default;
68
69
StatusCode
Status
::
code
() const noexcept {
70
if
(!
data_
) {
71
return
StatusCode::SUCCESS
;
72
}
73
return
data_
->code;
74
}
75
76
std::string_view
Status::message
() const noexcept {
77
if
(!
data_
) {
78
static
constexpr
auto
empty = std::string_view(
""
);
79
return
empty;
80
}
81
return
data_
->message;
82
}
83
84
}
// namespace common
85
}
// namespace msgpack_rpc
msgpack_rpc::common::Status
Class of statuses.
Definition
status.h:34
msgpack_rpc::common::Status::message
std::string_view message() const noexcept
Get the error message.
Definition
status.cpp:76
msgpack_rpc::common::Status::Status
Status() noexcept
Constructor. (Set to success.).
msgpack_rpc::common::Status::data_
std::shared_ptr< Data > data_
Internal data.
Definition
status.h:99
msgpack_rpc::common::Status::code
StatusCode code() const noexcept
Get the status code.
Definition
status.cpp:69
msgpack_rpc::common
Namespace of common classes and functions.
Definition
msgpack_rpc_exception.h:30
msgpack_rpc::common::StatusCode
StatusCode
Enumeration of status codes.
Definition
status_code.h:33
msgpack_rpc::common::StatusCode::SUCCESS
@ SUCCESS
Success.
Definition
status_code.h:35
msgpack_rpc
Namespace of cpp-msgpack-rpc library.
Definition
i_address.h:26
std
STL namespace.
status.h
Definition of Status class.
status_code.h
Definition of StatusCode enumeration.
msgpack_rpc::common::Status::Data
Internal data.
Definition
status.cpp:31
msgpack_rpc::common::Status::Data::create
static std::shared_ptr< Data > create(StatusCode code, std::string_view message)
Create data.
Definition
status.cpp:45
msgpack_rpc::common::Status::Data::code
StatusCode code
Status code.
Definition
status.cpp:33
msgpack_rpc::common::Status::Data::message
std::string message
Error message.
Definition
status.cpp:36
src
msgpack_rpc
common
status.cpp
Generated on
for cpp-msgpack-rpc by
1.18.0