MCPcopy Create free account
hub / github.com/MonaSolutions/MonaServer / UDPSocket

Method UDPSocket

MonaBase/sources/UDPSocket.cpp:31–48  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29
30
31UDPSocket::UDPSocket(const SocketManager& manager, bool allowBroadcast) : _socket(manager,Socket::DATAGRAM), _allowBroadcast(allowBroadcast) {
32
33 onReadable = [this](Exception& ex,UInt32 available) {
34 if(available==0)
35 return;
36
37 PoolBuffer pBuffer(_socket.manager().poolBuffers,available);
38 SocketAddress address;
39 int size = _socket.receiveFrom(ex,pBuffer->data(), available, address);
40 if (ex || size <= 0)
41 return;
42 pBuffer->resize(size, true);
43
44 OnPacket::raise(pBuffer,address);
45 };
46 _socket.OnError::subscribe(*this);
47 _socket.OnReadable::subscribe(onReadable);
48}
49
50UDPSocket::~UDPSocket() {
51 _socket.OnReadable::unsubscribe(onReadable);

Callers

nothing calls this directly

Calls 3

resizeMethod · 0.80
receiveFromMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected