FastLED 3.9.15
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#endif
13
14namespace fl {
15namespace asio {
16
18 switch (e) {
19 case 0:
20 return error_code();
21#ifdef ECONNREFUSED
22 case ECONNREFUSED:
23 return error_code(errc::connection_refused, "connection refused");
24#endif
25#ifdef ECONNRESET
26 case ECONNRESET:
27 return error_code(errc::connection_reset, "connection reset");
28#endif
29#ifdef ETIMEDOUT
30 case ETIMEDOUT:
31 return error_code(errc::timed_out, "timed out");
32#endif
33#ifdef EADDRINUSE
34 case EADDRINUSE:
35 return error_code(errc::address_in_use, "address in use");
36#endif
37#ifdef EWOULDBLOCK
38 case EWOULDBLOCK:
39 return error_code(errc::would_block, "would block");
40#endif
41// EAGAIN may equal EWOULDBLOCK on some platforms
42#if defined(EAGAIN) && (!defined(EWOULDBLOCK) || EAGAIN != EWOULDBLOCK)
43 case EAGAIN:
44 return error_code(errc::would_block, "would block");
45#endif
46 default:
47 return error_code(errc::unknown, "unknown error");
48 }
49}
50
51} // namespace asio
52} // namespace fl
53
54#else // !FASTLED_HAS_NETWORKING
55
56// Stub for non-networking builds — only from_errno is needed
57namespace fl {
58namespace asio {
59
61 return error_code(errc::unknown, "networking not available");
62}
63
64} // namespace asio
65} // namespace fl
66
67#endif // FASTLED_HAS_NETWORKING
Base definition for an LED controller.
Definition crgb.hpp:179
error_code() FL_NOEXCEPT
Definition error_code.h:35
static error_code from_errno(int platform_errno)
Convert from platform errno value.
Asio-compatible error code: numeric code + optional human-readable message.
Definition error_code.h:31