ui-utilcpp 1.10.4
UI::Util::UnixSocket Class Reference

Unix Socket. More...

#include <Socket.hpp>

Inheritance diagram for UI::Util::UnixSocket:
Inheritance graph
Collaboration diagram for UI::Util::UnixSocket:
Collaboration graph

Public Member Functions

 UnixSocket (std::string const &path, bool closeFd=true)
 UnixSocket (int fd, bool closeFd=false)
UnixSocket & unixBind (uid_t uid=::geteuid(), gid_t gid=::getegid(), mode_t mode=S_IRUSR|S_IWUSR, bool silentUnlink=true)
 Bind this unix socket.
virtual UnixSocket & bind ()
 Bind this socket.
virtual UnixSocket & connect ()
 Connect this socket.
Public Member Functions inherited from UI::Util::Socket
 Socket (int fd=-1, bool closeFd=false)
 Construct socket.
std::string getId (bool const &peer=false) const
 Get human-readable id string.
std::string getPeerId () const
 Get peer id.
Socketlisten (int backlog=16)
 Start listening.
int accept (long int toSeconds=0, long int toMicroSeconds=0)
 Accept an incoming socket connection.
int shutdown (int how, bool doThrow=true)
 Shutdown socket.
virtual std::streamsize read (void *const buf, std::streamsize count)
 C++-like virtual read method.
virtual std::streamsize write (void const *const buf, std::streamsize count)
 C++-like virtual write method.
SocketsetRcvTimeout (long int seconds, long int microseconds=0)
SocketsetSndTimeout (long int seconds, long int microseconds=0)
SocketsetUnblock (bool unblock=true)
ssize_t recv (void *const buf, size_t len, int flags=0)
ssize_t send (void const *const msg, size_t len, int flags=0)
Public Member Functions inherited from UI::Util::FileDescriptor
 FileDescriptor (int fd=-1, bool closeFd=false)
 Constructor from file descriptor.
virtual ~FileDescriptor ()
 Destructor.
int getFd () const
 Get file descriptor.

Additional Inherited Members

Public Types inherited from UI::Util::FileDescriptor
enum  ErrorCode {
  OpenErr_ = 1 , ReadErr_ , WriteErr_ , LockErr_ ,
  UnlockErr_ , BindErr_ , ConnectErr_ , UnblockErr_ ,
  ListenErr_ , ShutdownErr_
}
 Error codes for exceptions.
typedef CodeException< ErrorCodeException
 Exceptions for this class.
Static Public Member Functions inherited from UI::Util::FileDescriptor
static void fdClose (int const &fd, std::string const &id, bool const &doClose=true)
 Helper to close file descriptors from destructors.
Protected Member Functions inherited from UI::Util::FileDescriptor
void init (int fd, bool closeFd=false)
 To be called in a constructor.
Protected Attributes inherited from UI::Util::FileDescriptor
int fd_
 The file descriptor that is managed.

Detailed Description

Unix Socket.

Examples
EchoServer.cpp.

Member Function Documentation

◆ bind()

UnixSocket & UI::Util::UnixSocket::bind ( )
virtual

Bind this socket.

Reimplemented from UI::Util::Socket.

References unixBind().

◆ connect()

UnixSocket & UI::Util::UnixSocket::connect ( )
virtual

Connect this socket.

Reimplemented from UI::Util::Socket.

References UI::Util::FileDescriptor::fd_, UI::Util::Socket::getId(), and UI_THROW_CODE.

◆ unixBind()

UnixSocket & UI::Util::UnixSocket::unixBind ( uid_t uid = ::geteuid(),
gid_t gid = ::getegid(),
mode_t mode = S_IRUSR | S_IWUSR,
bool silentUnlink = true )

Bind this unix socket.

Note
Default permissions: "srw-------" (Only owner has rw-Access).

References UI::Util::FileDescriptor::fd_, UI::Util::Socket::getId(), and UI_THROW_CODE.

Referenced by bind().


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