24#if MSGPACK_RPC_HAS_UNIX_SOCKETS
29#include <asio/local/stream_protocol.hpp>
34#include "msgpack_rpc/impl/msgpack_rpc_export.h"
41using AsioUnixSocketAddress = asio::local::stream_protocol::endpoint;
46class MSGPACK_RPC_EXPORT UnixSocketAddress final :
public IAddress {
56 explicit UnixSocketAddress(AsioUnixSocketAddress address);
63 [[nodiscard]] std::string file_path()
const;
66 [[nodiscard]] URI to_uri()
const override;
69 [[nodiscard]] std::string to_string()
const override;
76 [[nodiscard]]
const AsioUnixSocketAddress& asio_address()
const;
85 [[nodiscard]]
bool operator==(
const UnixSocketAddress& right)
const;
94 [[nodiscard]]
bool operator!=(
const UnixSocketAddress& right)
const;
98 AsioUnixSocketAddress address_;
110class formatter<msgpack_rpc::addresses::UnixSocketAddress> {
118 constexpr format_parse_context::iterator parse(
119 format_parse_context& context) {
120 return context.end();
130 MSGPACK_RPC_EXPORT format_context::iterator format(
131 const msgpack_rpc::addresses::UnixSocketAddress& val,
132 format_context& context)
const;
144MSGPACK_RPC_EXPORT std::ostream&
operator<<(std::ostream& stream,
145 const msgpack_rpc::addresses::UnixSocketAddress& address);
Definitions of platform-specific macros.
Namespace of fmt library.
bool operator!=(const MethodName &left, const MethodName &right) noexcept
Compare two method names.
bool operator==(const MethodName &left, const MethodName &right) noexcept
Compare two method names.
std::ostream & operator<<(std::ostream &stream, const msgpack_rpc::addresses::URI &uri)
Format a URI.