Kurlyk
Toggle main menu visibility
Loading...
Searching...
No Matches
ClientErrorCategory.hpp
Go to the documentation of this file.
1
#pragma once
2
#ifndef KURLYK_HEADER_KURLYK_UTILS_CLIENT_ERROR_CATEGORY_HPP_INCLUDED
3
#define KURLYK_HEADER_KURLYK_UTILS_CLIENT_ERROR_CATEGORY_HPP_INCLUDED
4
7
8
namespace
kurlyk
{
9
namespace
utils {
10
13
enum class
ClientError
{
14
CancelledByUser
= 1,
15
AbortedDuringDestruction
,
16
ClientNotInitialized
,
17
InvalidConfiguration
,
18
NotConnected
,
19
QueueLimitExceeded
,
20
ShuttingDown
,
21
};
22
25
class
ClientErrorCategory
:
public
std::error_category {
26
public
:
27
const
char
*
name
() const noexcept
override
{
28
return
"http_client"
;
29
}
30
31
std::string
message
(
int
ev)
const override
{
32
switch
(
static_cast<
ClientError
>
(ev)) {
33
case
ClientError::CancelledByUser
:
34
return
"Request was cancelled by the user"
;
35
case
ClientError::AbortedDuringDestruction
:
36
return
"Request was aborted due to handler destruction"
;
37
case
ClientError::ClientNotInitialized
:
38
return
"Client was not initialized properly"
;
39
case
ClientError::InvalidConfiguration
:
40
return
"Invalid or missing client configuration"
;
41
case
ClientError::NotConnected
:
42
return
"Operation failed: client is not connected"
;
43
case
ClientError::QueueLimitExceeded
:
44
return
"Operation was rejected because the queue limit was exceeded"
;
45
case
ClientError::ShuttingDown
:
46
return
"Operation was rejected because the client is shutting down"
;
47
default
:
48
return
"Unknown HTTP client error"
;
49
}
50
}
51
};
52
55
inline
const
std::error_category&
client_error_category
() {
56
static
ClientErrorCategory
instance;
57
return
instance;
58
}
59
63
inline
std::error_code
make_error_code
(
ClientError
e) {
64
return
{
static_cast<
int
>
(e),
client_error_category
()};
65
}
66
67
}
// namespace utils
68
}
// namespace kurlyk
69
71
namespace
std
{
72
template
<>
73
struct
is_error_code_enum<
kurlyk
::utils::ClientError> : true_type {};
74
}
75
76
#endif
// KURLYK_HEADER_KURLYK_UTILS_CLIENT_ERROR_CATEGORY_HPP_INCLUDED
kurlyk::utils::ClientErrorCategory
Custom std::error_category for reporting internal client errors not tied to specific protocols (e....
Definition
ClientErrorCategory.hpp:25
kurlyk::utils::ClientErrorCategory::name
const char * name() const noexcept override
Definition
ClientErrorCategory.hpp:27
kurlyk::utils::ClientErrorCategory::message
std::string message(int ev) const override
Definition
ClientErrorCategory.hpp:31
kurlyk::utils::ClientError
ClientError
Defines errors related to the internal state or lifecycle of the HTTP/WebSocket client.
Definition
ClientErrorCategory.hpp:13
kurlyk::utils::ClientError::ShuttingDown
@ ShuttingDown
Operation was rejected because the owning subsystem is shutting down.
Definition
ClientErrorCategory.hpp:20
kurlyk::utils::ClientError::NotConnected
@ NotConnected
Operation requires an active connection but none exists.
Definition
ClientErrorCategory.hpp:18
kurlyk::utils::ClientError::AbortedDuringDestruction
@ AbortedDuringDestruction
Request handler was destroyed before completion, causing the request to abort.
Definition
ClientErrorCategory.hpp:15
kurlyk::utils::ClientError::QueueLimitExceeded
@ QueueLimitExceeded
Operation was rejected because the bounded queue is already full.
Definition
ClientErrorCategory.hpp:19
kurlyk::utils::ClientError::ClientNotInitialized
@ ClientNotInitialized
Operation attempted before client was properly initialized.
Definition
ClientErrorCategory.hpp:16
kurlyk::utils::ClientError::CancelledByUser
@ CancelledByUser
Request was cancelled explicitly by the user via cancel().
Definition
ClientErrorCategory.hpp:14
kurlyk::utils::ClientError::InvalidConfiguration
@ InvalidConfiguration
Provided configuration is incomplete or invalid.
Definition
ClientErrorCategory.hpp:17
kurlyk::utils::client_error_category
const std::error_category & client_error_category()
Returns the singleton instance of the ClientErrorCategory.
Definition
ClientErrorCategory.hpp:55
kurlyk::utils::make_error_code
std::error_code make_error_code(ClientError e)
Creates a std::error_code from a ClientError value.
Definition
ClientErrorCategory.hpp:63
kurlyk
Primary namespace for the Kurlyk library, encompassing initialization, request management,...
std
Enables use of ClientError with std::error_code.
Definition
ClientErrorCategory.hpp:71
include
kurlyk
utils
ClientErrorCategory.hpp
Generated by
1.17.0