cpp-msgpack-rpc 0.2.0
An RPC library implementing MessagePack RPC.
Loading...
Searching...
No Matches
status.h
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#pragma once
21
22#include <memory>
23#include <string_view>
24
26#include "msgpack_rpc/impl/msgpack_rpc_export.h"
27
28namespace msgpack_rpc {
29inline namespace common {
30
34class MSGPACK_RPC_EXPORT Status {
35public:
39 Status() noexcept;
40
47 Status(StatusCode code, std::string_view message);
48
52 Status(const Status&) noexcept;
53
57 Status(Status&&) noexcept;
58
64 Status& operator=(const Status&) noexcept;
65
71 Status& operator=(Status&&) noexcept;
72
76 ~Status() noexcept;
77
83 [[nodiscard]] StatusCode code() const noexcept;
84
92 [[nodiscard]] std::string_view message() const noexcept;
93
94private:
96 struct Data;
97
99 std::shared_ptr<Data> data_;
100};
101
102} // namespace common
103} // namespace msgpack_rpc
std::string_view message() const noexcept
Get the error message.
Definition status.cpp:76
Status() noexcept
Constructor. (Set to success.)
std::shared_ptr< Data > data_
Internal data.
Definition status.h:99
StatusCode code() const noexcept
Get the status code.
Definition status.cpp:69
Namespace of common classes and functions.
StatusCode
Enumeration of status codes.
Definition status_code.h:33
Namespace of cpp-msgpack-rpc library.
Definition i_address.h:26
STL namespace.
Definition of StatusCode enumeration.