FastLED 3.10.8
Loading...
Searching...
No Matches
error_code.cpp.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#ifdef FASTLED_HAS_NETWORKING
6
7// Platform-specific socket includes for errno constants
8#ifdef FL_IS_WIN
9#include "platforms/win/socket_win.h" // ok platform headers // IWYU pragma: keep
10#else
11#include "platforms/posix/socket_posix.h" // ok platform headers // IWYU pragma: keep
12#include "fl/stl/noexcept.h"
13#endif
14
15namespace fl {
16namespace asio {
17
19 switch (e) {
20 case 0:
21 return error_code();
22#ifdef ECONNREFUSED
23 case ECONNREFUSED:
24 return error_code(errc::connection_refused, "connection refused");
25#endif
26#ifdef ECONNRESET
27 case ECONNRESET:
28 return error_code(errc::connection_reset, "connection reset");
29#endif
30#ifdef ETIMEDOUT
31 case ETIMEDOUT:
32 return error_code(errc::timed_out, "timed out");
33#endif
34#ifdef EADDRINUSE
35 case EADDRINUSE:
36 return error_code(errc::address_in_use, "address in use");
37#endif
38#ifdef EWOULDBLOCK
39 case EWOULDBLOCK:
40 return error_code(errc::would_block, "would block");
41#endif
42// EAGAIN may equal EWOULDBLOCK on some platforms
43#if defined(EAGAIN) && (!defined(EWOULDBLOCK) || EAGAIN != EWOULDBLOCK)
44 case EAGAIN:
45 return error_code(errc::would_block, "would block");
46#endif
47 default:
48 return error_code(errc::unknown, "unknown error");
49 }
50}
51
52} // namespace asio
53} // namespace fl
54
55#else // !FASTLED_HAS_NETWORKING
56
57// Stub for non-networking builds — only from_errno is needed
58namespace fl {
59namespace asio {
60
62 return error_code(errc::unknown, "networking not available");
63}
64
65} // namespace asio
66} // namespace fl
67
68#endif // FASTLED_HAS_NETWORKING
u8 u8 fract8 blur_amount FL_NO_EXCEPT
Definition blur.h:186
Base definition for an LED controller.
Definition crgb.hpp:179
static error_code from_errno(int platform_errno) FL_NO_EXCEPT
Convert from platform errno value.
error_code() FL_NO_EXCEPT
Definition error_code.h:35
Asio-compatible error code: numeric code + optional human-readable message.
Definition error_code.h:31