Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
JNET::JSocketOutputChannel< JPrefix_t > Class Template Reference

Socket output channel. More...

#include <JSocketChannel.hh>

Inheritance diagram for JNET::JSocketOutputChannel< JPrefix_t >:
JNET::JSocketNonblockingWriter JNET::JSocketChannel JIO::JByteArrayWriter JNET::JSocket JNET::JSocketBuffer< JElement_t > JIO::JWriter std::vector< char > JLANG::JFile JNET::JSocketAddress JNET::JSocketStatus JLANG::JBinaryOutput JLANG::JAbstractObjectStatus JLANG::JAbstractFile JLANG::JBinaryInput JLANG::JBinaryOutput JLANG::JComparable< JAbstractFile >

Public Types

enum  JStatus_t { IO_RESET = -1, IO_READY = 0, IO_BUSY = +1 }
 
enum  JType { IO_PREFIX = 1, IO_DATA = 2 }
 

Public Member Functions

 JSocketOutputChannel (JSocket &socket)
 Constructor. More...
 
JStatus_t write ()
 Interruptable write method. More...
 
void reset ()
 Reset channel. More...
 
virtual int write (const char *buffer, const int length)
 Write data to socket. More...
 
int shutdown ()
 Shut down socket. More...
 
void setNonBlocking (const bool on)
 Set non-blocking of I/O. More...
 
bool getNonBlocking () const
 Get non-blocking of I/O. More...
 
void setKeepAlive (const bool on)
 Set keep alive of socket. More...
 
bool getKeepAlive () const
 Get keep alive of socket. More...
 
void setKeepIdle (const int t_s)
 Set the TCP idle time. More...
 
void setKeepCnt (const int count)
 Set the TCP idle count. More...
 
void setKeepIntvl (const int t_s)
 Set the TCP interval time. More...
 
void setReuseAddress (const bool on)
 Set reuse address. More...
 
bool getReuseAddress () const
 Get reuse address. More...
 
void setTcpNoDelay (const bool on)
 Set TCP no-delay. More...
 
bool getTcpNoDelay () const
 Get TCP no-delay. More...
 
void setReceiveBufferSize (const int size)
 Set receive buffer size. More...
 
int getReceiveBufferSize () const
 Set receive buffer size. More...
 
void setSendBufferSize (const int size)
 Set send buffer size. More...
 
int getSendBufferSize () const
 Get send buffer size. More...
 
virtual int read (char *buffer, const int length)
 Read data from socket. More...
 
void accept (const int server)
 Accept connection from a server. More...
 
void connect (const int port)
 Connect to port on local host. More...
 
void connect (const std::string &host_name, const int port)
 Connect to port on specified host. More...
 
void connect (const int ip_number, const int port)
 Connect to port on specified host. More...
 
void close ()
 Close file. More...
 
bool in_avail (JTimeval timeout=JTimeval::min()) const
 Check availability of input. More...
 
bool out_avail (JTimeval timeout=JTimeval::min()) const
 Check availability of output. More...
 
virtual bool good () const
 Check status. More...
 
virtual bool fail () const
 Check status. More...
 
virtual bool bad () const
 Check status. More...
 
virtual bool eof () const
 Check end of file. More...
 
bool less (const JAbstractFile &file) const
 Less than operation. More...
 
int getFileDescriptor () const
 Get file descriptor. More...
 
bool is_open () const
 Get open status. More...
 
const sockaddr * getSockaddr () const
 Get sockaddr. More...
 
sockaddr * getSockaddr ()
 Get sockaddr. More...
 
int getFamily () const
 Get family. More...
 
void setFamily (const int family)
 Set family. More...
 
std::string getHostname () const
 Get host name. More...
 
int getIPnumber () const
 Get IP number. More...
 
void setIPnumber (const int ip_number)
 Set IP number. More...
 
void setIPnumber ()
 Set any IP number. More...
 
int getPort () const
 Get port number. More...
 
void setPort (const int port)
 Set port number. More...
 
int getSize () const
 Get size of pending data. More...
 
void set (const JSocketBuffer< JElement_t > &buffer)
 Initialise buffer. More...
 
void set (JElement_t *buffer, const int length)
 Initialise buffer. More...
 
JStatus_t getStatus () const
 Get status of I/O. More...
 
bool isReset () const
 Check reset status. More...
 
bool isBusy () const
 Check busy status. More...
 
bool isReady () const
 Check ready status. More...
 
int getCounter () const
 Get number of I/O attempts. More...
 
virtual bool getStatus () const
 Status of writer. More...
 
void clear ()
 Clear buffer. More...
 
int tellp () const
 Get write position. More...
 
void seekp (const int pos)
 Set write position. More...
 
virtual int write (const char *buffer, const int length)
 Write byte array. More...
 
JWriteroperator<< (const JSerialisable &object)
 Write serialisable data object. More...
 
JWriteroperator<< (const bool &value)
 
JWriteroperator<< (const char &value)
 
JWriteroperator<< (const unsigned char &value)
 
JWriteroperator<< (const short &value)
 
JWriteroperator<< (const unsigned short &value)
 
JWriteroperator<< (const int &value)
 
JWriteroperator<< (const unsigned int &value)
 
JWriteroperator<< (const long int &value)
 
JWriteroperator<< (const long long int &value)
 
JWriteroperator<< (const unsigned long long int &value)
 
JWriteroperator<< (const float &value)
 
JWriteroperator<< (const double &value)
 
JWriteroperator<< (const long double &value)
 
JWriterstore (const JSerialisable &object)
 Write object. More...
 
template<class T >
JWriterstore (const T &object)
 Write object. More...
 
 operator bool () const
 Type conversion operator. More...
 
bool operator! () const
 Negated status of this object. More...
 

Static Public Member Functions

static int sizeOf ()
 Get size of object. More...
 

Public Attributes

JPrefix_t prefix
 

Static Public Attributes

static const int FILE_CLOSED = -1
 

Protected Member Functions

template<class T >
void setOption (const int level, const int option, const T value)
 Set socket option. More...
 
template<class T >
getOption (const int level, const int option) const
 Get socket option. More...
 
void setStatus (const JStatus_t status)
 Set status of I/O. More...
 

Protected Attributes

int fileDescriptor
 
JElement_t * __data
 
int __size
 
JStatus_t status
 
int counter
 
JType type
 
int __pos
 

Detailed Description

template<class JPrefix_t>
class JNET::JSocketOutputChannel< JPrefix_t >

Socket output channel.

This class can be used to user write to an internal buffer, to format these data as a packet and to write this packet to the socket without blocking.

The template argument corresponds to a header that precedes any data. This header acts as a protocol specifier that is used to determine the size of the data packet. To this end, the method setSizeOfPacket() should be implemented for each header type.

The wroting to the socket may be non-blocking (depending on the configuration of the socket). The status of this object should be checked for completion of the data packet. The method reset() should be called before writing the next data packet.

Definition at line 193 of file JSocketChannel.hh.

Member Enumeration Documentation

Enumerator
IO_RESET 
IO_READY 
IO_BUSY 

Definition at line 26 of file JSocketStatus.hh.

Enumerator
IO_PREFIX 
IO_DATA 

Definition at line 54 of file JSocketChannel.hh.

Constructor & Destructor Documentation

template<class JPrefix_t >
JNET::JSocketOutputChannel< JPrefix_t >::JSocketOutputChannel ( JSocket socket)
inline

Constructor.

Parameters
socketsocket

Definition at line 208 of file JSocketChannel.hh.

208  :
209  JSocketNonblockingWriter(socket),
210  JSocketChannel(),
212  {
213  reset();
214  }
Auxiliary class for socket channel.
JSocketNonblockingWriter(const JSocket &socket)
Constructor.
JByteArrayWriter(const int size=65536)
Constructor.
void reset()
Reset channel.

Member Function Documentation

template<class JPrefix_t >
JStatus_t JNET::JSocketOutputChannel< JPrefix_t >::write ( )
inline

Interruptable write method.

Returns
status

Definition at line 222 of file JSocketChannel.hh.

223  {
224  if (type == IO_PREFIX) {
225 
226  const int length = tellp();
227 
228  setSizeOfPacket(length, prefix);
229 
230  // overwrite prefix
231 
232  seekp(0);
233 
234  JByteArrayWriter::write((char*) &prefix, sizeof(JPrefix_t));
235 
236  seekp(length);
237 
238  type = IO_DATA;
239 
240  set(data(), tellp());
241  }
242 
243  if (isBusy()) {
245  }
246 
247  return JSocketStatus::getStatus();
248  }
ControlHost prefix.
Definition: JPrefix.hh:31
void seekp(const int pos)
Set write position.
void set(const JSocketBuffer< JElement_t > &buffer)
Initialise buffer.
virtual int write(const char *buffer, const int length)
Write byte array.
JStatus_t getStatus() const
Get status of I/O.
JStatus_t write()
Continuation of non-blocking write method.
void setSizeOfPacket(const int size, JPrefix_t &prefix)
Set total size of internet packet.
Definition: JLigier.cc:50
bool isBusy() const
Check busy status.
int tellp() const
Get write position.
template<class JPrefix_t >
void JNET::JSocketOutputChannel< JPrefix_t >::reset ( )
inline

Reset channel.

After a reset, the socket channel is ready to receive a new data packet.

Definition at line 255 of file JSocketChannel.hh.

256  {
259 
260  // reserve space for prefix
261 
262  resize(sizeof(JPrefix_t));
263  seekp (sizeof(JPrefix_t));
264  }
ControlHost prefix.
Definition: JPrefix.hh:31
void seekp(const int pos)
Set write position.
void reset()
Reset channel.
virtual int JNET::JSocket::write ( const char *  buffer,
const int  length 
)
inlinevirtualinherited

Write data to socket.

This method handles I/O errors in such a way that:

  1. the return value is set to zero if no data are written;
  2. an exception is thrown in case of a fatal error;
Parameters
bufferbuffer
lengthnumber of bytes to write
Returns
number of bytes actually written

Reimplemented from JLANG::JFile.

Reimplemented in JNET::JSocketBlocking.

Definition at line 339 of file JSocket.hh.

340  {
341  int pos = JFile::write(buffer, length);
342 
343  if (pos == 0) {
344 
345  THROW(JSocketException, "Socket write failed.");
346 
347  } else if (pos < 0) {
348 
349  switch (errno) {
350 
351  case EINTR:
352  case EWOULDBLOCK:
353  //case EAGAIN:
354  break;
355 
356  default:
357  THROW(JSocketException, "Socket write error.");
358  }
359 
360  pos = 0;
361  }
362 
363  return pos;
364  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:633
virtual int write(const char *buffer, const int length)
Write data to file.
Definition: JFile.hh:87
int JNET::JSocket::shutdown ( )
inlineinherited

Shut down socket.

Definition at line 94 of file JSocket.hh.

95  {
96  const int value = ::shutdown(getFileDescriptor(), SHUT_RDWR);
97 
98  close();
99 
100  return value;
101  }
void close()
Close file.
Definition: JFile.hh:55
int getFileDescriptor() const
Get file descriptor.
int shutdown()
Shut down socket.
Definition: JSocket.hh:94
void JNET::JSocket::setNonBlocking ( const bool  on)
inlineinherited

Set non-blocking of I/O.

Parameters
ontrue to enable non-blocking; false to disable

Definition at line 109 of file JSocket.hh.

110  {
111  const int flags = fcntl(getFileDescriptor(), F_GETFL, -1);
112  const int mask = FNDELAY;
113 
114  if (flags == -1) {
115  THROW(JSocketException, "Get socket option failed.");
116  }
117 
118  if (((flags & mask) != mask && on) ||
119  ((flags & mask) != 0 && !on) ) {
120 
121  if (fcntl(getFileDescriptor(), F_SETFL, flags ^ mask) < 0) {
122  THROW(JSocketException, "Set socket option failed.");
123  }
124  }
125  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:633
int getFileDescriptor() const
Get file descriptor.
bool JNET::JSocket::getNonBlocking ( ) const
inlineinherited

Get non-blocking of I/O.

Returns
true if enabled non-blocking; else false

Definition at line 133 of file JSocket.hh.

134  {
135  const int flags = fcntl(getFileDescriptor(), F_GETFL, -1);
136  const int mask = FNDELAY;
137 
138  if (flags == -1) {
139  THROW(JSocketException, "Get socket option failed.");
140  }
141 
142  return ((flags & mask) != 0);
143  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:633
int getFileDescriptor() const
Get file descriptor.
void JNET::JSocket::setKeepAlive ( const bool  on)
inlineinherited

Set keep alive of socket.

Parameters
ontrue to enable keep alive; false to disable

Definition at line 151 of file JSocket.hh.

152  {
153  setOption(SOL_SOCKET, SO_KEEPALIVE, int(on ? 1 : 0));
154  }
void setOption(const int level, const int option, const T value)
Set socket option.
Definition: JSocket.hh:428
bool JNET::JSocket::getKeepAlive ( ) const
inlineinherited

Get keep alive of socket.

Returns
true if keep alive; else false

Definition at line 162 of file JSocket.hh.

163  {
164  return (getOption<int>(SOL_SOCKET, SO_KEEPALIVE) == 1);
165  }
void JNET::JSocket::setKeepIdle ( const int  t_s)
inlineinherited

Set the TCP idle time.

Parameters
t_stime [s]

Definition at line 173 of file JSocket.hh.

174  {
175  setOption(IPROTO_TCP, TCP_KEEPIDLE, t_s);
176  }
#define IPROTO_TCP
Definition: JSocket.hh:18
void setOption(const int level, const int option, const T value)
Set socket option.
Definition: JSocket.hh:428
void JNET::JSocket::setKeepCnt ( const int  count)
inlineinherited

Set the TCP idle count.

Parameters
countcount

Definition at line 184 of file JSocket.hh.

185  {
186  setOption(IPROTO_TCP, TCP_KEEPCNT, count);
187  }
#define IPROTO_TCP
Definition: JSocket.hh:18
void setOption(const int level, const int option, const T value)
Set socket option.
Definition: JSocket.hh:428
void JNET::JSocket::setKeepIntvl ( const int  t_s)
inlineinherited

Set the TCP interval time.

Parameters
t_stime [s]

Definition at line 195 of file JSocket.hh.

196  {
197  setOption(IPROTO_TCP, TCP_KEEPINTVL, t_s);
198  }
#define IPROTO_TCP
Definition: JSocket.hh:18
void setOption(const int level, const int option, const T value)
Set socket option.
Definition: JSocket.hh:428
void JNET::JSocket::setReuseAddress ( const bool  on)
inlineinherited

Set reuse address.

Parameters
ontrue to enable reuse address; false to disable

Definition at line 206 of file JSocket.hh.

207  {
208  setOption(SOL_SOCKET, SO_REUSEADDR, int(on ? 1 : 0));
209  }
void setOption(const int level, const int option, const T value)
Set socket option.
Definition: JSocket.hh:428
bool JNET::JSocket::getReuseAddress ( ) const
inlineinherited

Get reuse address.

Returns
true if enable reuse address; else false

Definition at line 217 of file JSocket.hh.

218  {
219  return (getOption<int>(SOL_SOCKET, SO_REUSEADDR) == 1);
220  }
void JNET::JSocket::setTcpNoDelay ( const bool  on)
inlineinherited

Set TCP no-delay.

Parameters
ontrue to set TCP no-delay; false to disable

Definition at line 228 of file JSocket.hh.

229  {
230  setOption(IPPROTO_TCP, TCP_NODELAY, int(on ? 1 : 0));
231  }
void setOption(const int level, const int option, const T value)
Set socket option.
Definition: JSocket.hh:428
bool JNET::JSocket::getTcpNoDelay ( ) const
inlineinherited

Get TCP no-delay.

Returns
true if TCP no-delay; else false

Definition at line 239 of file JSocket.hh.

240  {
241  return (getOption<int>(IPPROTO_TCP, TCP_NODELAY) == 1);
242  }
void JNET::JSocket::setReceiveBufferSize ( const int  size)
inlineinherited

Set receive buffer size.

Parameters
sizenumber of bytes

Definition at line 250 of file JSocket.hh.

251  {
252  setOption(SOL_SOCKET, SO_RCVBUF, int(size));
253  }
void setOption(const int level, const int option, const T value)
Set socket option.
Definition: JSocket.hh:428
int JNET::JSocket::getReceiveBufferSize ( ) const
inlineinherited

Set receive buffer size.

Returns
number of bytes

Definition at line 261 of file JSocket.hh.

262  {
263  return getOption<int>(SOL_SOCKET, SO_RCVBUF);
264  }
void JNET::JSocket::setSendBufferSize ( const int  size)
inlineinherited

Set send buffer size.

Parameters
sizenumber of bytes

Definition at line 272 of file JSocket.hh.

273  {
274  setOption(SOL_SOCKET, SO_SNDBUF, int(size));
275  }
void setOption(const int level, const int option, const T value)
Set socket option.
Definition: JSocket.hh:428
int JNET::JSocket::getSendBufferSize ( ) const
inlineinherited

Get send buffer size.

Returns
number of bytes

Definition at line 283 of file JSocket.hh.

284  {
285  return getOption<int>(SOL_SOCKET, SO_SNDBUF);
286  }
virtual int JNET::JSocket::read ( char *  buffer,
const int  length 
)
inlinevirtualinherited

Read data from socket.

This method handles I/O errors in such a way that:

  1. the return value is set to zero if no data are read;
  2. an exception is thrown in case of a fatal error;
Parameters
bufferbuffer
lengthnumber of bytes to read
Returns
number of bytes actually read

Reimplemented from JLANG::JFile.

Reimplemented in JNET::JSocketBlocking.

Definition at line 300 of file JSocket.hh.

301  {
302  int pos = JFile::read(buffer, length);
303 
304  if (pos == 0) {
305 
306  THROW(JSocketException, "Socket read failed.");
307 
308  } else if (pos < 0) {
309 
310  switch (errno) {
311 
312  case EINTR:
313  case EWOULDBLOCK:
314  //case EAGAIN:
315  break;
316 
317  default:
318  THROW(JSocketException, "Socket read error.");
319  }
320 
321  pos = 0;
322  }
323 
324  return pos;
325  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:633
virtual int read(char *buffer, const int length)
Read data from file.
Definition: JFile.hh:74
void JNET::JSocket::accept ( const int  server)
inlineinherited

Accept connection from a server.

Parameters
serverfile descriptor of server socket

Definition at line 372 of file JSocket.hh.

373  {
374  socklen_t size = sizeof(sockaddr_in);
375  fileDescriptor = ::accept(server, getSockaddr(), &size);
376  }
const sockaddr * getSockaddr() const
Get sockaddr.
void accept(const int server)
Accept connection from a server.
Definition: JSocket.hh:372
void JNET::JSocket::connect ( const int  port)
inlineinherited

Connect to port on local host.

Parameters
portport number

Definition at line 384 of file JSocket.hh.

385  {
386  connect(INADDR_ANY, port);
387  }
void connect(const int port)
Connect to port on local host.
Definition: JSocket.hh:384
void JNET::JSocket::connect ( const std::string &  host_name,
const int  port 
)
inlineinherited

Connect to port on specified host.

Parameters
host_namehost name
portport number

Definition at line 396 of file JSocket.hh.

397  {
398  connect(JSYSTEM::getIPnumber(host_name), port);
399  }
int getIPnumber(const std::string &host_name)
Get IP number.
Definition: JNetwork.hh:115
void connect(const int port)
Connect to port on local host.
Definition: JSocket.hh:384
void JNET::JSocket::connect ( const int  ip_number,
const int  port 
)
inlineinherited

Connect to port on specified host.

Parameters
ip_numberIP number
portport number

Definition at line 408 of file JSocket.hh.

409  {
410  setIPnumber(ip_number);
411  setPort(port);
412 
413  if (::connect(getFileDescriptor(), getSockaddr(), sizeof(sockaddr_in)) < 0) {
414  THROW(JSocketException, "Socket connection failed.");
415  }
416  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:633
void setIPnumber()
Set any IP number.
const sockaddr * getSockaddr() const
Get sockaddr.
int getFileDescriptor() const
Get file descriptor.
void setPort(const int port)
Set port number.
void connect(const int port)
Connect to port on local host.
Definition: JSocket.hh:384
template<class T >
void JNET::JSocket::setOption ( const int  level,
const int  option,
const T  value 
)
inlineprotectedinherited

Set socket option.

Parameters
levellevel
optionoption
valuevalue

Definition at line 428 of file JSocket.hh.

429  {
430  socklen_t size = sizeof(T);
431 
432  if (setsockopt(getFileDescriptor(), level, option, &value, size) < 0) {
433  THROW(JSocketException, "Set socket option failed.");
434  }
435  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:633
int getFileDescriptor() const
Get file descriptor.
template<class T >
T JNET::JSocket::getOption ( const int  level,
const int  option 
) const
inlineprotectedinherited

Get socket option.

Parameters
levellevel
optionoption
Returns
value

Definition at line 446 of file JSocket.hh.

447  {
448  T value;
449  socklen_t size = sizeof(T);
450 
451  if (getsockopt(getFileDescriptor(), level, option, &value, &size) < 0) {
452  THROW(JSocketException, "Get socket option failed.");
453  }
454 
455  return value;
456  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:633
int getFileDescriptor() const
Get file descriptor.
void JLANG::JFile::close ( )
inlineinherited

Close file.

Definition at line 55 of file JFile.hh.

56  {
57  if (fileDescriptor != FILE_CLOSED) {
58 
60 
62  result = 0;
63  }
64  }
void close()
Close file.
Definition: JFile.hh:55
static const int FILE_CLOSED
int result
Definition: JFile.hh:164
bool JLANG::JFile::in_avail ( JTimeval  timeout = JTimeval::min()) const
inlineinherited

Check availability of input.

This method returns true if at least one byte can be read without blocking.

Parameters
timeouttimeout
Returns
true if ready to read; else false

Definition at line 100 of file JFile.hh.

101  {
102  return JFileDescriptorMask(*this).in_avail(timeout);
103  }
Auxiliary class for method select.
bool in_avail(JTimeval timeout=JTimeval::min())
Check availability of input.
bool JLANG::JFile::out_avail ( JTimeval  timeout = JTimeval::min()) const
inlineinherited

Check availability of output.

This method returns true if at least one byte can be written without blocking.

Parameters
timeouttimeout
Returns
true if ready to write; else false

Definition at line 113 of file JFile.hh.

114  {
115  return JFileDescriptorMask(*this).out_avail(timeout);
116  }
bool out_avail(JTimeval timeout=JTimeval::min())
Check availability of output.
Auxiliary class for method select.
virtual bool JLANG::JFile::good ( ) const
inlinevirtualinherited

Check status.

Returns
true if last I/O operation successful; else false

Definition at line 124 of file JFile.hh.

125  {
126  return is_open() && !eof() && !bad();
127  }
virtual bool eof() const
Check end of file.
Definition: JFile.hh:157
bool is_open() const
Get open status.
virtual bool bad() const
Check status.
Definition: JFile.hh:146
virtual bool JLANG::JFile::fail ( ) const
inlinevirtualinherited

Check status.

Returns
true if last I/O operation caused logical error; else false

Definition at line 135 of file JFile.hh.

136  {
137  return result == 0;
138  }
int result
Definition: JFile.hh:164
virtual bool JLANG::JFile::bad ( ) const
inlinevirtualinherited

Check status.

Returns
true if last I/O operation caused read/write error; else false

Definition at line 146 of file JFile.hh.

147  {
148  return fail();
149  }
virtual bool fail() const
Check status.
Definition: JFile.hh:135
virtual bool JLANG::JFile::eof ( ) const
inlinevirtualinherited

Check end of file.

Returns
true if end of file; else false

Definition at line 157 of file JFile.hh.

158  {
159  return result == EOF;
160  }
int result
Definition: JFile.hh:164
bool JLANG::JAbstractFile::less ( const JAbstractFile file) const
inlineinherited

Less than operation.

Parameters
fileJAbstractFile to be compared
Returns
true if this file descriptor is less; else false

Definition at line 64 of file JAbstractFile.hh.

65  {
66  return getFileDescriptor() < file.getFileDescriptor();
67  }
int getFileDescriptor() const
Get file descriptor.
int JLANG::JAbstractFile::getFileDescriptor ( ) const
inlineinherited

Get file descriptor.

Returns
file descriptor

Definition at line 75 of file JAbstractFile.hh.

76  {
77  return fileDescriptor;
78  }
bool JLANG::JAbstractFile::is_open ( ) const
inlineinherited

Get open status.

Definition at line 84 of file JAbstractFile.hh.

85  {
86  return fileDescriptor != FILE_CLOSED;
87  }
static const int FILE_CLOSED
const sockaddr* JNET::JSocketAddress::getSockaddr ( ) const
inlineinherited

Get sockaddr.

Returns
pointer to sockaddr structure

Definition at line 44 of file JSocketAddress.hh.

45  {
46  return (const sockaddr*) static_cast<const sockaddr_in*>(this);
47  }
sockaddr* JNET::JSocketAddress::getSockaddr ( )
inlineinherited

Get sockaddr.

Returns
pointer to sockaddr structure

Definition at line 55 of file JSocketAddress.hh.

56  {
57  return (sockaddr*) static_cast<sockaddr_in*>(this);
58  }
int JNET::JSocketAddress::getFamily ( ) const
inlineinherited

Get family.

Returns
family

Definition at line 66 of file JSocketAddress.hh.

67  {
68  return sin_family;
69  }
void JNET::JSocketAddress::setFamily ( const int  family)
inlineinherited

Set family.

Parameters
familyfamily

Definition at line 77 of file JSocketAddress.hh.

78  {
79  sin_family = family;
80  }
std::string JNET::JSocketAddress::getHostname ( ) const
inlineinherited

Get host name.

Returns
host name

Definition at line 88 of file JSocketAddress.hh.

89  {
90  return JSYSTEM::getHostname(this->getIPnumber());
91  }
int getIPnumber() const
Get IP number.
std::string getHostname()
Get host name.
Definition: JNetwork.hh:75
int JNET::JSocketAddress::getIPnumber ( ) const
inlineinherited

Get IP number.

Returns
IP number

Definition at line 99 of file JSocketAddress.hh.

100  {
101  return sin_addr.s_addr;
102  }
void JNET::JSocketAddress::setIPnumber ( const int  ip_number)
inlineinherited

Set IP number.

Parameters
ip_numberIP number

Definition at line 110 of file JSocketAddress.hh.

111  {
112  sin_addr.s_addr = ip_number;
113  }
void JNET::JSocketAddress::setIPnumber ( )
inlineinherited

Set any IP number.

Definition at line 119 of file JSocketAddress.hh.

120  {
121  sin_addr.s_addr = htonl(INADDR_ANY);
122  }
int JNET::JSocketAddress::getPort ( ) const
inlineinherited

Get port number.

Returns
port number

Definition at line 130 of file JSocketAddress.hh.

131  {
132  return ntohs(this->sin_port);
133  }
void JNET::JSocketAddress::setPort ( const int  port)
inlineinherited

Set port number.

Parameters
portport number

Definition at line 141 of file JSocketAddress.hh.

142  {
143  if (port >= 0 && port <= std::numeric_limits<u_short>::max())
144  sin_port = htons((u_short) port);
145  else
146  throw JCastException("JSocketAddress::setPort() illegal value.");
147  }
static int JNET::JSocketAddress::sizeOf ( )
inlinestaticinherited

Get size of object.

Returns
number of bytes

Definition at line 155 of file JSocketAddress.hh.

156  {
157  return sizeof(sockaddr_in);
158  }
template<class JElement_t>
int JNET::JSocketBuffer< JElement_t >::getSize ( ) const
inlineinherited

Get size of pending data.

Returns
number of bytes

Definition at line 55 of file JSocketNonblocking.hh.

56  {
57  return __size;
58  }
template<class JElement_t>
void JNET::JSocketBuffer< JElement_t >::set ( const JSocketBuffer< JElement_t > &  buffer)
inlineinherited

Initialise buffer.

Parameters
bufferbuffer

Definition at line 66 of file JSocketNonblocking.hh.

67  {
68  set(buffer.__data, buffer.__size);
69  }
void set(const JSocketBuffer< JElement_t > &buffer)
Initialise buffer.
template<class JElement_t>
void JNET::JSocketBuffer< JElement_t >::set ( JElement_t *  buffer,
const int  length 
)
inlineinherited

Initialise buffer.

Parameters
bufferI/O data
lengthnumber of bytes

Definition at line 78 of file JSocketNonblocking.hh.

79  {
80  if (status == IO_BUSY) {
81  THROW(JSocketException, "Set socket buffer I/O while busy.");
82  }
83 
84  status = (length != 0 ? IO_BUSY : IO_READY);
85  counter = 0;
86  __data = buffer;
87  __size = length;
88  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:633
JStatus_t JNET::JSocketStatus::getStatus ( ) const
inlineinherited

Get status of I/O.

Returns
status

Definition at line 43 of file JSocketStatus.hh.

44  {
45  return status;
46  }
bool JNET::JSocketStatus::isReset ( ) const
inlineinherited

Check reset status.

Returns
true if reset; else false

Definition at line 54 of file JSocketStatus.hh.

55  {
56  return status == IO_RESET;
57  }
bool JNET::JSocketStatus::isBusy ( ) const
inlineinherited

Check busy status.

Returns
true if busy; else false

Definition at line 65 of file JSocketStatus.hh.

66  {
67  return status == IO_BUSY;
68  }
bool JNET::JSocketStatus::isReady ( ) const
inlineinherited

Check ready status.

Returns
true if ready; else false

Definition at line 76 of file JSocketStatus.hh.

77  {
78  return status == IO_READY;
79  }
int JNET::JSocketStatus::getCounter ( ) const
inlineinherited

Get number of I/O attempts.

Returns
number of I/O attempts

Definition at line 87 of file JSocketStatus.hh.

88  {
89  return counter;
90  }
void JNET::JSocketStatus::setStatus ( const JStatus_t  status)
inlineprotectedinherited

Set status of I/O.

Parameters
statusstatus

Definition at line 109 of file JSocketStatus.hh.

110  {
111  this->status = status;
112  }
virtual bool JIO::JByteArrayWriter::getStatus ( ) const
inlinevirtualinherited

Status of writer.

Returns
status of this writer

Implements JLANG::JAbstractObjectStatus.

Definition at line 180 of file JByteArrayIO.hh.

181  {
182  return true;
183  }
void JIO::JByteArrayWriter::clear ( )
inlineinherited

Clear buffer.

Definition at line 189 of file JByteArrayIO.hh.

190  {
192 
193  __pos = 0;
194  }
int JIO::JByteArrayWriter::tellp ( ) const
inlineinherited

Get write position.

Returns
write position

Definition at line 202 of file JByteArrayIO.hh.

203  {
204  return __pos;
205  }
void JIO::JByteArrayWriter::seekp ( const int  pos)
inlineinherited

Set write position.

Parameters
poswrite position

Definition at line 213 of file JByteArrayIO.hh.

214  {
215  __pos = pos;
216  }
virtual int JIO::JByteArrayWriter::write ( const char *  buffer,
const int  length 
)
inlinevirtualinherited

Write byte array.

Parameters
bufferpointer to byte array
lengthnumber of bytes
Returns
number of bytes

Implements JLANG::JBinaryOutput.

Definition at line 226 of file JByteArrayIO.hh.

227  {
228  if (__pos + length > (int) this->size()) {
229  this->resize(__pos + length);
230  }
231 
232  memcpy(this->data() + __pos, buffer, length);
233 
234  __pos += length;
235 
236  return length;
237  }
JWriter& JIO::JWriter::operator<< ( const JSerialisable object)
inlineinherited

Write serialisable data object.

Parameters
objectserialisable data object
Returns
JWriter

Definition at line 141 of file JSerialisable.hh.

142  {
143  return object.write(*this);
144  }
JWriter& JIO::JWriter::operator<< ( const bool &  value)
inlineinherited

Definition at line 147 of file JSerialisable.hh.

147 { write((const char*) &value, sizeof(bool)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const char &  value)
inlineinherited

Definition at line 148 of file JSerialisable.hh.

148 { write((const char*) &value, sizeof(char)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const unsigned char &  value)
inlineinherited

Definition at line 149 of file JSerialisable.hh.

149 { write((const char*) &value, sizeof(unsigned char)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const short &  value)
inlineinherited

Definition at line 150 of file JSerialisable.hh.

150 { write((const char*) &value, sizeof(short)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const unsigned short &  value)
inlineinherited

Definition at line 151 of file JSerialisable.hh.

151 { write((const char*) &value, sizeof(unsigned short)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const int &  value)
inlineinherited

Definition at line 152 of file JSerialisable.hh.

152 { write((const char*) &value, sizeof(int)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const unsigned int &  value)
inlineinherited

Definition at line 153 of file JSerialisable.hh.

153 { write((const char*) &value, sizeof(unsigned int)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const long int &  value)
inlineinherited

Definition at line 154 of file JSerialisable.hh.

154 { write((const char*) &value, sizeof(long int)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const long long int &  value)
inlineinherited

Definition at line 155 of file JSerialisable.hh.

155 { write((const char*) &value, sizeof(long long int)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const unsigned long long int &  value)
inlineinherited

Definition at line 156 of file JSerialisable.hh.

156 { write((const char*) &value, sizeof(unsigned long long int)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const float &  value)
inlineinherited

Definition at line 157 of file JSerialisable.hh.

157 { write((const char*) &value, sizeof(float)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const double &  value)
inlineinherited

Definition at line 158 of file JSerialisable.hh.

158 { write((const char*) &value, sizeof(double)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::operator<< ( const long double &  value)
inlineinherited

Definition at line 159 of file JSerialisable.hh.

159 { write((const char*) &value, sizeof(long double)); return *this; }
virtual int write(const char *buffer, const int length)=0
Write byte array.
JWriter& JIO::JWriter::store ( const JSerialisable object)
inlineinherited

Write object.

Parameters
objectobject
Returns
this writer

Definition at line 168 of file JSerialisable.hh.

169  {
170  return object.write(*this);
171  }
template<class T >
JWriter& JIO::JWriter::store ( const T &  object)
inlineinherited

Write object.

Parameters
objectobject
Returns
this writer

Definition at line 181 of file JSerialisable.hh.

182  {
183  return *this << object;
184  }
JLANG::JAbstractObjectStatus::operator bool ( ) const
inlineinherited

Type conversion operator.

Returns
status of this object

Definition at line 33 of file JAbstractObjectStatus.hh.

34  {
35  return this->getStatus();
36  }
virtual bool getStatus() const =0
Get status of object.
bool JLANG::JAbstractObjectStatus::operator! ( ) const
inlineinherited

Negated status of this object.

Returns
negated status of this object

Definition at line 44 of file JAbstractObjectStatus.hh.

45  {
46  return !(this->getStatus());
47  }
virtual bool getStatus() const =0
Get status of object.

Member Data Documentation

template<class JPrefix_t >
JPrefix_t JNET::JSocketOutputChannel< JPrefix_t >::prefix

Definition at line 267 of file JSocketChannel.hh.

const int JLANG::JAbstractFile::FILE_CLOSED = -1
staticinherited

Definition at line 27 of file JAbstractFile.hh.

int JLANG::JAbstractFile::fileDescriptor
protectedinherited

Definition at line 91 of file JAbstractFile.hh.

template<class JElement_t>
JElement_t* JNET::JSocketBuffer< JElement_t >::__data
protectedinherited

Definition at line 104 of file JSocketNonblocking.hh.

template<class JElement_t>
int JNET::JSocketBuffer< JElement_t >::__size
protectedinherited

Definition at line 105 of file JSocketNonblocking.hh.

JStatus_t JNET::JSocketStatus::status
protectedinherited

Definition at line 115 of file JSocketStatus.hh.

int JNET::JSocketStatus::counter
protectedinherited

Definition at line 116 of file JSocketStatus.hh.

JType JNET::JSocketChannel::type
protectedinherited

Definition at line 67 of file JSocketChannel.hh.

int JIO::JByteArrayWriter::__pos
protectedinherited

Definition at line 241 of file JByteArrayIO.hh.


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