6#include "OgcLoggerUdp.h"
12#include "../Platform.h"
19 pendingConfig = config;
22 return activateSocket();
28bool OgcLoggerUdp::activateSocket()
30 sock = net_socket(AF_INET, SOCK_DGRAM, 0);
34 if (pendingConfig.nonBlocking)
37 net_ioctl(sock, FIONBIO, &nonBlocking);
40 memset(&serverAddr, 0,
sizeof(serverAddr));
41 serverAddr.sin_len = 8;
42 serverAddr.sin_family = AF_INET;
43 serverAddr.sin_port = htons(pendingConfig.targetPort);
45 if (inet_aton(pendingConfig.targetIp, &serverAddr.sin_addr) == 0)
57void OgcLoggerUdp::OnNetworkUp()
60 if (!self || !self->activateSocket())
86 net_sendto(sock, line, len, 0, (
struct sockaddr *)&serverAddr, 8);
void activateDeferred(LogBackendId id)
Called by a backend that deferred its own activation on some background precondition (eg.
Non-blocking UDP log backend.
void shutdown() override
Releases whatever init() acquired.
bool init(const LogConfig &config) override
Opens whatever handle/socket/file this backend needs, using only fields from config (nothing hardcode...
void write(LogLevel level, const char *line, size_t len) override
Writes one already-formatted, newline-terminated line.
static void notifyWhenUp(void(*callback)())
Registers callback to run exactly once.
static bool isUp()
Non-blocking: true if the console currently has a usable IP.
LogLevel
Severity of a single log call.
Full runtime configuration for the Logger.