MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / createSocketPair

Function createSocketPair

Examples/AwaitFileCourier/AwaitFileCourier.cpp:47–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45}
46
47static Result createSocketPair(AsyncEventLoop& eventLoop, SocketDescriptor& sender, SocketDescriptor& receiver)
48{
49 SocketDescriptor serverSocket;
50 SocketIPAddress address;
51 SC_TRY(createServer(eventLoop, serverSocket, address));
52 auto closeServer = MakeDeferred([&serverSocket] { (void)serverSocket.close(); });
53
54 SocketDescriptor client;
55 SC_TRY(client.create(address.getAddressFamily()));
56 SC_TRY(SocketClient(client).connect("127.0.0.1", address.getPort()));
57
58 SocketDescriptor accepted;
59 SC_TRY(SocketServer(serverSocket).accept(address.getAddressFamily(), accepted));
60 SC_TRY(client.setBlocking(false));
61 SC_TRY(accepted.setBlocking(false));
62 SC_TRY(eventLoop.associateExternallyCreatedSocket(client));
63 SC_TRY(eventLoop.associateExternallyCreatedSocket(accepted));
64
65 SC_TRY(sender.assign(move(accepted)));
66 SC_TRY(receiver.assign(move(client)));
67 return Result(true);
68}
69
70static AwaitTask copyThenSend(AwaitEventLoop& await, ThreadPool& threadPool, StringSpan sourcePath, StringSpan copyPath,
71 SocketDescriptor& sender, SocketDescriptor& receiver, Span<char> receiveBuffer,

Callers 1

runAwaitFileCourierFunction · 0.85

Calls 12

MakeDeferredFunction · 0.85
SocketClientFunction · 0.85
SocketServerFunction · 0.85
getAddressFamilyMethod · 0.80
createServerFunction · 0.70
ResultClass · 0.50
closeMethod · 0.45
createMethod · 0.45
connectMethod · 0.45
acceptMethod · 0.45
assignMethod · 0.45

Tested by

no test coverage detected