join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
join::BasicUnixEndpoint< Protocol > Class Template Reference

basic unix endpoint class. More...

#include <endpoint.hpp>

Inheritance diagram for join::BasicUnixEndpoint< Protocol >:
Collaboration diagram for join::BasicUnixEndpoint< Protocol >:

Public Member Functions

constexpr BasicUnixEndpoint () noexcept
 default constructor.
 
 BasicUnixEndpoint (const struct sockaddr *addr, socklen_t len) noexcept
 create instance using socket address.
 
 BasicUnixEndpoint (const char *dev) noexcept
 create instance using device name.
 
 BasicUnixEndpoint (const std::string &dev) noexcept
 create instance using device name.
 
constexpr Protocol protocol () const noexcept
 get endpoint protocol.
 
constexpr socklen_t length () const noexcept
 get socket address length.
 
void device (const std::string &dev) noexcept
 set endpoint device name.
 
std::string device () const
 get endpoint device name.
 
- Public Member Functions inherited from join::BasicEndpoint< Protocol >
constexpr BasicEndpoint () noexcept
 default constructor.
 
 BasicEndpoint (const struct sockaddr *addr, socklen_t len) noexcept
 create instance using socket address.
 
 BasicEndpoint (Side side, const std::string &name, uint64_t elementSize=1472, uint64_t capacity=144)
 create instance.
 
 BasicEndpoint (const BasicEndpoint &other)=delete
 copy constructor.
 
struct sockaddr * addr () noexcept
 get socket address.
 
const struct sockaddr * addr () const noexcept
 get socket address.
 
BasicEndpointoperator= (const BasicEndpoint &other)=delete
 copy assignment operator.
 
 ~BasicEndpoint ()
 destroy the instance.
 
int open ()
 open the channel endpoint.
 
void close ()
 close the channel endpoint.
 
bool opened () const
 check if the endpoint is open.
 
int trySend (const void *element)
 try to send a message to the peer (non blocking).
 
int send (const void *element)
 send a message to the peer (blocking).
 
int timedSend (const void *element, std::chrono::duration< Rep, Period > timeout)
 send a message to the peer with timeout (blocking).
 
int tryReceive (void *element)
 try to receive a message from the peer (non blocking).
 
int receive (void *element)
 receive a message from the peer (blocking).
 
int timedReceive (void *element, std::chrono::duration< Rep, Period > timeout)
 receive a message from the peer with timeout (blocking).
 
uint64_t available () const
 get number of available slots for sending.
 
bool full () const
 check if outbound queue is full.
 
uint64_t pending () const
 get number of pending messages.
 
bool empty () const
 check if inbound queue is empty.
 
Side side () const
 get the side this endpoint represents.
 
const std::string & name () const
 get the channel name.
 
uint64_t elementSize () const
 get the element size.
 
uint64_t capacity () const
 get the buffer capacity.
 

Additional Inherited Members

- Public Types inherited from join::BasicEndpoint< Protocol >
enum  Side
 endpoint side identifier. More...
 
using Outbound
 
using Inbound
 
- Protected Attributes inherited from join::BasicEndpoint< Protocol >
struct sockaddr_storage _addr
 socket address storage.
 

Detailed Description

template<class Protocol>
class join::BasicUnixEndpoint< Protocol >

basic unix endpoint class.

Constructor & Destructor Documentation

◆ BasicUnixEndpoint() [1/4]

template<class Protocol >
join::BasicUnixEndpoint< Protocol >::BasicUnixEndpoint ( )
inlineconstexprnoexcept

default constructor.

◆ BasicUnixEndpoint() [2/4]

template<class Protocol >
join::BasicUnixEndpoint< Protocol >::BasicUnixEndpoint ( const struct sockaddr * addr,
socklen_t len )
inlinenoexcept

create instance using socket address.

Parameters
addrsocket address.
lensocket address length.

◆ BasicUnixEndpoint() [3/4]

template<class Protocol >
join::BasicUnixEndpoint< Protocol >::BasicUnixEndpoint ( const char * dev)
inlinenoexcept

create instance using device name.

Parameters
devdevice name to set.

◆ BasicUnixEndpoint() [4/4]

template<class Protocol >
join::BasicUnixEndpoint< Protocol >::BasicUnixEndpoint ( const std::string & dev)
inlinenoexcept

create instance using device name.

Parameters
devdevice name to set.

Member Function Documentation

◆ device() [1/2]

template<class Protocol >
std::string join::BasicUnixEndpoint< Protocol >::device ( ) const
inline

get endpoint device name.

Returns
endpoint device name.

◆ device() [2/2]

template<class Protocol >
void join::BasicUnixEndpoint< Protocol >::device ( const std::string & dev)
inlinenoexcept

set endpoint device name.

Parameters
devdevice name to set.

◆ length()

template<class Protocol >
socklen_t join::BasicUnixEndpoint< Protocol >::length ( ) const
inlineconstexprnoexcept

get socket address length.

Returns
socket address length.

◆ protocol()

template<class Protocol >
Protocol join::BasicUnixEndpoint< Protocol >::protocol ( ) const
inlineconstexprnoexcept

get endpoint protocol.

Returns
endpoint protocol.

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