uvco 0.1
Loading...
Searching...
No Matches
uds.h
Go to the documentation of this file.
1// uvco (c) 2024 Lewin Bormann. See LICENSE for specific terms.
2
3#pragma once
4
5#include <fmt/core.h>
6#include <uv.h>
7
9#include "uvco/run.h"
11#include "uvco/uds_stream.h"
12
13#include <string_view>
14
15namespace uvco {
16
19
26 struct ConnectAwaiter_;
27
28public:
33 ~UnixStreamClient() = default;
34
35 explicit UnixStreamClient(const Loop &loop) : loop_{loop} {}
36
38 Promise<UnixStream> connect(std::string_view path);
39
40private:
41 const Loop &loop_;
42};
43
51class UnixStreamServer : public StreamServerBase<uv_pipe_t, UnixStream> {
52public:
57 ~UnixStreamServer() = default;
58
63 UnixStreamServer(const Loop &loop, std::string_view bindPath, int flags = 0);
64
67 void chmod(int mode);
68};
69
71
72} // namespace uvco
Definition loop.h:26
Definition promise.h:49
StreamServerBase(const StreamServerBase &)=delete
UnixStreamClient & operator=(const UnixStreamClient &)=delete
const Loop & loop_
Definition uds.h:41
UnixStreamClient(const UnixStreamClient &)=delete
UnixStreamClient & operator=(UnixStreamClient &&)=delete
UnixStreamClient(UnixStreamClient &&)=delete
UnixStreamClient(const Loop &loop)
Definition uds.h:35
Promise< UnixStream > connect(std::string_view path)
Connect to a Unix domain socket at the given path.
Definition uds.cc:82
UnixStreamServer(const UnixStreamServer &)=delete
UnixStreamServer(UnixStreamServer &&)=default
UnixStreamServer & operator=(const UnixStreamServer &)=delete
UnixStreamServer & operator=(UnixStreamServer &&)=default
void chmod(int mode)
Definition uds.cc:39
Definition async_work.cc:18