UI::Util::UnixSocket Class Reference

Unix Socket. More...

`#include <Socket.hpp>`

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

## 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.
Socket & | listen (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.
Socket & | setRcvTimeout (long int seconds, long int microseconds=0)
Socket & | setSndTimeout (long int seconds, long int microseconds=0)
Socket & | setUnblock (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< ErrorCode > | Exception
| 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:

- Socket.hpp
- Socket.cpp