Dv::Net::userversocket Class Reference

Class representing a server listening on a unix socket. More...

#include <userversocket.h>

Inheritance diagram for Dv::Net::userversocket:
Inheritance graph
[legend]
Collaboration diagram for Dv::Net::userversocket:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 userversocket (const std::string &filename, time_t delay=0, int nconnections=5, unsigned int min_debug_level=0, Debugable *debug_master=0)
 Constructor.
 ~userversocket ()
 Destructor.
shared_ptr< usocketaccept (time_t delay=0, size_t bufsz=1024)
 Accept a client connection.
std::string filename () const
time_t delay () const
int fd () const
bool status () const
 operator bool () const
int error () const
std::string strerror () const

Private Member Functions

 userversocket (const userversocket &)
 Forbidden.
userversocketoperator= (const userversocket &)
 Forbidden.

Private Attributes

std::string fn_
int fd_
int errno_
time_t delay_

Detailed Description

Class representing a server listening on a unix socket.

Definition at line 15 of file userversocket.h.


Constructor & Destructor Documentation

Dv::Net::userversocket::userversocket ( const std::string &  filename,
time_t  delay = 0,
int  nconnections = 5,
unsigned int  min_debug_level = 0,
Debugable debug_master = 0 
) [explicit]

Constructor.

Parameters:
filename associated with newly created unix socket
delay in millisecs that will be associated with connections to the server
nconnections queue size of unix socket
min_debug_level if a debug_master is connected, logging info will only be written if the master's level is at least min_debug_level
debug_master from where debug info will be taken
See also:
Dv::DebugSlave
Dv::Net::userversocket::~userversocket (  ) 

Destructor.

Dv::Net::userversocket::userversocket ( const userversocket  )  [private]

Forbidden.


Member Function Documentation

shared_ptr<usocket> Dv::Net::userversocket::accept ( time_t  delay = 0,
size_t  bufsz = 1024 
) [inline]

Accept a client connection.

Parameters:
delay in millisecs before accept() will time out
bufsz that will be associated with client socket

The success can be tested by testing the status of the returned usocket.

 Dv::Util::ref<Dv::Net::usocket> client(server.accept()); 
 if (*client) { 
   // all is well
 }

Definition at line 42 of file userversocket.h.

References delay().

std::string Dv::Net::userversocket::filename (  )  const [inline]
Returns:
the filename of underlying unix socket.

Definition at line 46 of file userversocket.h.

References fn_.

time_t Dv::Net::userversocket::delay (  )  const [inline]
Returns:
max delay in millisecs that accept will wait before failing.

Definition at line 48 of file userversocket.h.

References delay_.

Referenced by accept().

int Dv::Net::userversocket::fd (  )  const [inline]
Returns:
file descriptor of unix socket.

Definition at line 50 of file userversocket.h.

References fd_.

bool Dv::Net::userversocket::status (  )  const [inline]
Returns:
whether server is ok.

Definition at line 52 of file userversocket.h.

References errno_.

Referenced by operator bool().

Dv::Net::userversocket::operator bool (  )  const [inline]
Returns:
whether server is ok.

Definition at line 54 of file userversocket.h.

References status().

int Dv::Net::userversocket::error (  )  const [inline]
Returns:
error code, 0 == ok.

Definition at line 56 of file userversocket.h.

References errno_.

std::string Dv::Net::userversocket::strerror (  )  const
Returns:
status string.
userversocket& Dv::Net::userversocket::operator= ( const userversocket  )  [private]

Forbidden.


Member Data Documentation

std::string Dv::Net::userversocket::fn_ [private]

Definition at line 64 of file userversocket.h.

Referenced by filename().

Definition at line 65 of file userversocket.h.

Referenced by fd().

Definition at line 66 of file userversocket.h.

Referenced by error(), and status().

Definition at line 67 of file userversocket.h.

Referenced by delay().


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

dvnet-0.9.24 [ 5 December, 2009]