uvco 0.1
Loading...
Searching...
No Matches
Classes | Public Member Functions | Private Attributes | List of all members
uvco::UnixStreamClient Class Reference

#include <uds.h>

Collaboration diagram for uvco::UnixStreamClient:
Collaboration graph
[legend]

Classes

struct  ConnectAwaiter_
 

Public Member Functions

 UnixStreamClient (const UnixStreamClient &)=delete
 
 UnixStreamClient (UnixStreamClient &&)=delete
 
UnixStreamClientoperator= (const UnixStreamClient &)=delete
 
UnixStreamClientoperator= (UnixStreamClient &&)=delete
 
 ~UnixStreamClient ()=default
 
 UnixStreamClient (const Loop &loop)
 
Promise< UnixStreamconnect (std::string_view path)
 Connect to a Unix domain socket at the given path.
 

Private Attributes

const Looploop_
 

Detailed Description

A client that connects to a Unix domain socket (type SOCK_STREAM).

The connect() method returns a Promise<UnixStream>, which will resolve when the connection is established. The peer address can be obtained using the getPeerName() method on UnixStream.

Constructor & Destructor Documentation

◆ UnixStreamClient() [1/3]

uvco::UnixStreamClient::UnixStreamClient ( const UnixStreamClient )
delete

◆ UnixStreamClient() [2/3]

uvco::UnixStreamClient::UnixStreamClient ( UnixStreamClient &&  )
delete

◆ ~UnixStreamClient()

uvco::UnixStreamClient::~UnixStreamClient ( )
default

◆ UnixStreamClient() [3/3]

uvco::UnixStreamClient::UnixStreamClient ( const Loop loop)
inlineexplicit
37: loop_{loop} {}
const Loop & loop_
Definition uds.h:43

Member Function Documentation

◆ connect()

Promise< UnixStream > uvco::UnixStreamClient::connect ( std::string_view  path)

Connect to a Unix domain socket at the given path.

42 {
43 ConnectAwaiter_ awaiter{loop_, path};
44 std::optional<UvcoException> maybeError;
45 // Special error handling mechanism to properly close the
46 // open but not connected handle.
47 try {
48 UnixStream connection = co_await awaiter;
49 co_return connection;
50 } catch (const UvcoException &e) {
51 maybeError = e;
52 }
53 co_await closeHandle(awaiter.pipe_.get());
54 BOOST_ASSERT(maybeError);
55 throw std::move(maybeError).value();
56}
Promise< void > closeHandle(T *handle, C closer)
Definition close.h:28

◆ operator=() [1/2]

UnixStreamClient & uvco::UnixStreamClient::operator= ( const UnixStreamClient )
delete

◆ operator=() [2/2]

UnixStreamClient & uvco::UnixStreamClient::operator= ( UnixStreamClient &&  )
delete

Member Data Documentation

◆ loop_

const Loop& uvco::UnixStreamClient::loop_
private

The documentation for this class was generated from the following files: