Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JNET::JClient Class Reference

ControlHost client manager. More...

Inheritance diagram for JNET::JClient:
JNET::JTCPSocket JNET::JSocket JLANG::JFile JNET::JSocketAddress JLANG::JAbstractFile JLANG::JBinaryInput JLANG::JBinaryOutput JLANG::JComparable< JAbstractFile >

Public Member Functions

 JClient ()
 Default constructor.
 
 JClient (const JTCPSocket &socket)
 Constructor.
 
const std::string & getNickname () const
 Get nick name.
 
void setNickname (const std::string &nick_name)
 Set nick name.
 
bool checkRequest () const
 Check request.
 
void incrementRequest ()
 Increment request by one.
 
void decrementRequest ()
 Decrement request by one.
 
void setRequestAll ()
 Set no request.
 
const std::set< JTag > & getSubscriptionAll () const
 Get subscription.
 
const std::set< JTag > & getSubscriptionAny () const
 Get subscription.
 
bool setSubscription (const std::string &subscription)
 Set subcription.
 
bool checkSubscriptionAll (const JPrefix_t &prefix) const
 Check subscription for given prefix.
 
bool checkSubscriptionAny (const JPrefix_t &prefix) const
 Check subscription for given prefix.
 
bool checkSubscription (const JPrefix_t &prefix) const
 Check subscription for given prefix.
 
void add (const JDispatch &message)
 Add message to client queues depending on subscription of each client.
 
void drop ()
 Drop all messages for which the client has not the 'all' subscription.
 
void setNonBlocking (const bool on)
 Set non-blocking of I/O.
 
bool getNonBlocking () const
 Get non-blocking of I/O.
 
void setKeepIdle (const int t_s)
 Set the TCP idle time.
 
void setKeepCnt (const int count)
 Set the TCP idle count.
 
void setKeepIntvl (const int t_s)
 Set the TCP interval time.
 
void setTcpNoDelay (const bool on)
 Set TCP no-delay.
 
bool getTcpNoDelay () const
 Get TCP no-delay.
 
void accept (const int server)
 Accept connection from a server.
 
void connect (const int port)
 Connect to port on local host.
 
void connect (const JHostname &hostname)
 Connect to port on specified host.
 
void connect (const std::string &hostname, const int port)
 Connect to port on specified host.
 
void connect (const int ip_number, const int port)
 Connect to port on specified host.
 
int shutdown ()
 Shut down socket.
 
void setKeepAlive (const bool on)
 Set keep alive of socket.
 
bool getKeepAlive () const
 Get keep alive of socket.
 
void setReuseAddress (const bool on)
 Set reuse address.
 
bool getReuseAddress () const
 Get reuse address.
 
void setReceiveBufferSize (const int size)
 Set receive buffer size.
 
int getReceiveBufferSize () const
 Set receive buffer size.
 
void setSendBufferSize (const int size)
 Set send buffer size.
 
int getSendBufferSize () const
 Get send buffer size.
 
virtual int read (char *buffer, const int length) override
 Read data from socket.
 
virtual int write (const char *buffer, const int length) override
 Write data to socket.
 
int close ()
 Close file.
 
bool in_avail (JTimeval timeout=JTimeval::min()) const
 Check availability of input.
 
bool out_avail (JTimeval timeout=JTimeval::min()) const
 Check availability of output.
 
virtual bool good () const
 Check status.
 
virtual bool fail () const
 Check status.
 
virtual bool bad () const
 Check status.
 
virtual bool eof () const
 Check end of file.
 
bool less (const JAbstractFile &file) const
 Less than operation.
 
int getFileDescriptor () const
 Get file descriptor.
 
void setFileDescriptor (const int file)
 Set file descriptor.
 
bool is_open () const
 Get open status.
 
const sockaddr * getSockaddr () const
 Get sockaddr.
 
sockaddr * getSockaddr ()
 Get sockaddr.
 
int getFamily () const
 Get family.
 
void setFamily (const int family)
 Set family.
 
std::string getHostname () const
 Get host name.
 
int getIPnumber () const
 Get IP number.
 
void setIPnumber (const int ip_number)
 Set IP number.
 
void setIPnumber ()
 Set any IP number.
 
int getPort () const
 Get port number.
 
void setPort (const int port)
 Set port number.
 

Static Public Member Functions

static const int getDefaultBufferSize ()
 Default socket buffer size to be used on this system.
 
static int sizeOf ()
 Get size of object.
 

Public Attributes

JSocketInputChannel_t in
 reader for incoming messages
 
JSocketNonblockingWriter out
 writer for outgoing messages
 
std::deque< JDispatchqueue
 queue for outgoing messages
 

Static Public Attributes

static unsigned int QUEUE_LIMIT
 Maximum number of messages in queue.
 
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.
 
template<class T >
getOption (const int level, const int option) const
 Get socket option.
 

Protected Attributes

std::set< JTagsubscriptionAll
 
std::set< JTagsubscriptionAny
 
std::string nick_name
 
bool requestAll
 
int requestCounter
 
int fileDescriptor
 

Private Attributes

int result
 

Detailed Description

ControlHost client manager.

Definition at line 243 of file JLigier.cc.

Constructor & Destructor Documentation

◆ JClient() [1/2]

JNET::JClient::JClient ( )
inline

Default constructor.

Definition at line 255 of file JLigier.cc.

255 :
256 JTCPSocket(),
257 in (*this),
258 out(*this),
259 requestAll(false),
261 {}
int requestCounter
Definition JLigier.cc:470
JSocketNonblockingWriter out
writer for outgoing messages
Definition JLigier.cc:462
bool requestAll
Definition JLigier.cc:469
JSocketInputChannel_t in
reader for incoming messages
Definition JLigier.cc:461
JTCPSocket()
Default constructor.
Definition JTCPSocket.hh:35

◆ JClient() [2/2]

JNET::JClient::JClient ( const JTCPSocket & socket)
inline

Constructor.

Parameters
socketsocket

Definition at line 269 of file JLigier.cc.

269 :
270 JTCPSocket(socket),
271 in (*this),
272 out(*this),
273 requestAll(false),
275 {}

Member Function Documentation

◆ getNickname()

const std::string & JNET::JClient::getNickname ( ) const
inline

Get nick name.

Returns
nick name

Definition at line 283 of file JLigier.cc.

284 {
285 return nick_name;
286 }
std::string nick_name
Definition JLigier.cc:468

◆ setNickname()

void JNET::JClient::setNickname ( const std::string & nick_name)
inline

Set nick name.

Parameters
nick_namenick name

Definition at line 294 of file JLigier.cc.

295 {
296 this->nick_name = nick_name;
297 }

◆ checkRequest()

bool JNET::JClient::checkRequest ( ) const
inline

Check request.

Returns
true if request can be honoured; else false

Definition at line 305 of file JLigier.cc.

306 {
307 return requestAll || requestCounter != 0;
308 }

◆ incrementRequest()

void JNET::JClient::incrementRequest ( )
inline

Increment request by one.

Definition at line 314 of file JLigier.cc.

315 {
317 }

◆ decrementRequest()

void JNET::JClient::decrementRequest ( )
inline

Decrement request by one.

Definition at line 323 of file JLigier.cc.

324 {
326 }

◆ setRequestAll()

void JNET::JClient::setRequestAll ( )
inline

Set no request.

Definition at line 332 of file JLigier.cc.

333 {
334 requestAll = true;
335 }

◆ getSubscriptionAll()

const std::set< JTag > & JNET::JClient::getSubscriptionAll ( ) const
inline

Get subscription.

Returns
subscription

Definition at line 343 of file JLigier.cc.

344 {
345 return subscriptionAll;
346 }
std::set< JTag > subscriptionAll
Definition JLigier.cc:466

◆ getSubscriptionAny()

const std::set< JTag > & JNET::JClient::getSubscriptionAny ( ) const
inline

Get subscription.

Returns
subscription

Definition at line 354 of file JLigier.cc.

355 {
356 return subscriptionAny;
357 }
std::set< JTag > subscriptionAny
Definition JLigier.cc:467

◆ setSubscription()

bool JNET::JClient::setSubscription ( const std::string & subscription)
inline

Set subcription.

Parameters
subscriptionsubscription
Returns
true of OK; else false

Definition at line 366 of file JLigier.cc.

367 {
368 using namespace std;
369
370 subscriptionAll.clear();
371 subscriptionAny.clear();
372
373 try {
374
375 char c;
376 JTag tag;
377
378 for (istringstream is(subscription); is >> c >> tag; ) {
379 if (c == SUBSCRIBE_ALL) subscriptionAll.insert(tag);
380 else if (c == SUBSCRIBE_ANY) subscriptionAny.insert(tag);
381 //else if (c == SUBSCRIBE_SHARED_MEMORY) subscriptionAny.insert(tag);
382 }
383 }
384 catch(const JControlHostException& error) {
385 return false;
386 }
387
388 return true;
389 }
@ SUBSCRIBE_ANY
@ SUBSCRIBE_ALL

◆ checkSubscriptionAll()

bool JNET::JClient::checkSubscriptionAll ( const JPrefix_t & prefix) const
inline

Check subscription for given prefix.

Parameters
prefixprefix
Returns
true if subscription valid; else false

Definition at line 398 of file JLigier.cc.

399 {
400 return subscriptionAll.find(prefix) != subscriptionAll.end();
401 }

◆ checkSubscriptionAny()

bool JNET::JClient::checkSubscriptionAny ( const JPrefix_t & prefix) const
inline

Check subscription for given prefix.

Parameters
prefixprefix
Returns
true if subscription valid; else false

Definition at line 410 of file JLigier.cc.

411 {
412 return subscriptionAny.find(prefix) != subscriptionAny.end() && checkRequest() && queue.size() < QUEUE_LIMIT;
413 }
std::deque< JDispatch > queue
queue for outgoing messages
Definition JLigier.cc:463
static unsigned int QUEUE_LIMIT
Maximum number of messages in queue.
Definition JLigier.cc:249
bool checkRequest() const
Check request.
Definition JLigier.cc:305

◆ checkSubscription()

bool JNET::JClient::checkSubscription ( const JPrefix_t & prefix) const
inline

Check subscription for given prefix.

Parameters
prefixprefix
Returns
true if subscription valid; else false

Definition at line 422 of file JLigier.cc.

423 {
424 return checkSubscriptionAll(prefix) || checkSubscriptionAny(prefix);
425 }
bool checkSubscriptionAll(const JPrefix_t &prefix) const
Check subscription for given prefix.
Definition JLigier.cc:398
bool checkSubscriptionAny(const JPrefix_t &prefix) const
Check subscription for given prefix.
Definition JLigier.cc:410

◆ add()

void JNET::JClient::add ( const JDispatch & message)
inline

Add message to client queues depending on subscription of each client.

Note that adding a message may result in dropping (other) messages.

Parameters
messagemessage

Definition at line 434 of file JLigier.cc.

435 {
436 if (checkSubscription(message)) {
437
438 queue.push_back(message);
439
440 if (queue.size() > QUEUE_LIMIT) {
441 drop();
442 }
443 }
444 }
bool checkSubscription(const JPrefix_t &prefix) const
Check subscription for given prefix.
Definition JLigier.cc:422
void drop()
Drop all messages for which the client has not the 'all' subscription.
Definition JLigier.cc:450

◆ drop()

void JNET::JClient::drop ( )
inline

Drop all messages for which the client has not the 'all' subscription.

Definition at line 450 of file JLigier.cc.

451 {
452 for (std::deque<JDispatch>::iterator i = queue.begin(); i != queue.end(); ) {
453 if (!checkSubscriptionAll(*i) && (i != queue.begin() || !out.isBusy()))
454 i = queue.erase(i);
455 else
456 ++i;
457 }
458 }
bool isBusy() const
Check busy status.

◆ setNonBlocking()

void JNET::JTCPSocket::setNonBlocking ( const bool on)
inlineinherited

Set non-blocking of I/O.

Parameters
ontrue to enable non-blocking; false to disable

Definition at line 56 of file JTCPSocket.hh.

57 {
58 const int flags = fcntl(getFileDescriptor(), F_GETFL, -1);
59 const int mask = FNDELAY;
60
61 if (flags == -1) {
62 THROW(JSocketException, "Get socket option failed " << errno);
63 }
64
65 if (((flags & mask) != mask && on) ||
66 ((flags & mask) != 0 && !on) ) {
67
68 if (fcntl(getFileDescriptor(), F_SETFL, flags ^ mask) < 0) {
69 THROW(JSocketException, "Set socket option failed " << errno);
70 }
71 }
72 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
int getFileDescriptor() const
Get file descriptor.

◆ getNonBlocking()

bool JNET::JTCPSocket::getNonBlocking ( ) const
inlineinherited

Get non-blocking of I/O.

Returns
true if enabled non-blocking; else false

Definition at line 80 of file JTCPSocket.hh.

81 {
82 const int flags = fcntl(getFileDescriptor(), F_GETFL, -1);
83 const int mask = FNDELAY;
84
85 if (flags == -1) {
86 THROW(JSocketException, "Get socket option failed " << errno);
87 }
88
89 return ((flags & mask) != 0);
90 }

◆ setKeepIdle()

void JNET::JTCPSocket::setKeepIdle ( const int t_s)
inlineinherited

Set the TCP idle time.

Parameters
t_stime [s]

Definition at line 98 of file JTCPSocket.hh.

99 {
100 setOption(IPROTO_TCP, TCP_KEEPIDLE, t_s);
101 }
#define IPROTO_TCP
Definition JTCPSocket.hh:11
void setOption(const int level, const int option, const T value)
Set socket option.
Definition JSocket.hh:274

◆ setKeepCnt()

void JNET::JTCPSocket::setKeepCnt ( const int count)
inlineinherited

Set the TCP idle count.

Parameters
countcount

Definition at line 109 of file JTCPSocket.hh.

110 {
111 setOption(IPROTO_TCP, TCP_KEEPCNT, count);
112 }

◆ setKeepIntvl()

void JNET::JTCPSocket::setKeepIntvl ( const int t_s)
inlineinherited

Set the TCP interval time.

Parameters
t_stime [s]

Definition at line 120 of file JTCPSocket.hh.

121 {
122 setOption(IPROTO_TCP, TCP_KEEPINTVL, t_s);
123 }

◆ setTcpNoDelay()

void JNET::JTCPSocket::setTcpNoDelay ( const bool on)
inlineinherited

Set TCP no-delay.

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

Definition at line 131 of file JTCPSocket.hh.

132 {
133 setOption(IPPROTO_TCP, TCP_NODELAY, int(on ? 1 : 0));
134 }

◆ getTcpNoDelay()

bool JNET::JTCPSocket::getTcpNoDelay ( ) const
inlineinherited

Get TCP no-delay.

Returns
true if TCP no-delay; else false

Definition at line 142 of file JTCPSocket.hh.

143 {
144 return (getOption<int>(IPPROTO_TCP, TCP_NODELAY) == 1);
145 }

◆ accept()

void JNET::JTCPSocket::accept ( const int server)
inlineinherited

Accept connection from a server.

Parameters
serverfile descriptor of TCP server socket

Definition at line 153 of file JTCPSocket.hh.

154 {
155 socklen_t size = sizeof(sockaddr_in);
156
157 fileDescriptor = ::accept(server, getSockaddr(), &size);
158 }
const sockaddr * getSockaddr() const
Get sockaddr.
void accept(const int server)
Accept connection from a server.

◆ connect() [1/4]

void JNET::JTCPSocket::connect ( const int port)
inlineinherited

Connect to port on local host.

Parameters
portport number

Definition at line 166 of file JTCPSocket.hh.

167 {
168 connect(INADDR_ANY, port);
169 }
void connect(const int port)
Connect to port on local host.

◆ connect() [2/4]

void JNET::JTCPSocket::connect ( const JHostname & hostname)
inlineinherited

Connect to port on specified host.

Parameters
hostnamehost name

Definition at line 177 of file JTCPSocket.hh.

178 {
179 connect(hostname.hostname, hostname.port);
180 }

◆ connect() [3/4]

void JNET::JTCPSocket::connect ( const std::string & hostname,
const int port )
inlineinherited

Connect to port on specified host.

Parameters
hostnamehost name
portport number

Definition at line 189 of file JTCPSocket.hh.

190 {
191 connect(JSYSTEM::getIPnumber(hostname), port);
192 }
int getIPnumber()
Get IP number.
Definition JNetwork.hh:142

◆ connect() [4/4]

void JNET::JTCPSocket::connect ( const int ip_number,
const int port )
inlineinherited

Connect to port on specified host.

Parameters
ip_numberIP number
portport number

Definition at line 201 of file JTCPSocket.hh.

202 {
203 setIPnumber(ip_number);
204 setPort(port);
205
206 if (::connect(getFileDescriptor(), getSockaddr(), sizeof(sockaddr_in)) < 0) {
207 THROW(JSocketException, "Socket connection failed " << JSYSTEM::getIPaddress(ip_number) << ":" << port << " / " << getFileDescriptor() << " " << errno);
208 }
209 }
void setIPnumber()
Set any IP number.
void setPort(const int port)
Set port number.
std::string getIPaddress()
Get IP address (decimal-dot notation).
Definition JNetwork.hh:178

◆ getDefaultBufferSize()

static const int JNET::JSocket::getDefaultBufferSize ( )
inlinestaticinherited

Default socket buffer size to be used on this system.

Returns
number of bytes

Definition at line 75 of file JSocket.hh.

76 {
77#if __APPLE__
78 return JMATH::MEGABYTE;
79#else
80 return JMATH::GIGABYTE;
81#endif
82 }
static const long long int GIGABYTE
Number of bytes in a mega-byte.
static const long long int MEGABYTE
Number of bytes in a kilo-byte.

◆ shutdown()

int JNET::JSocket::shutdown ( )
inlineinherited

Shut down socket.

Returns
return value

Definition at line 89 of file JSocket.hh.

90 {
91 const int value = ::shutdown(getFileDescriptor(), SHUT_RDWR);
92
93 close();
94
95 return value;
96 }
int close()
Close file.
Definition JFile.hh:57
int shutdown()
Shut down socket.
Definition JSocket.hh:89

◆ setKeepAlive()

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 104 of file JSocket.hh.

105 {
106 setOption(SOL_SOCKET, SO_KEEPALIVE, int(on ? 1 : 0));
107 }

◆ getKeepAlive()

bool JNET::JSocket::getKeepAlive ( ) const
inlineinherited

Get keep alive of socket.

Returns
true if keep alive; else false

Definition at line 115 of file JSocket.hh.

116 {
117 return (getOption<int>(SOL_SOCKET, SO_KEEPALIVE) == 1);
118 }

◆ setReuseAddress()

void JNET::JSocket::setReuseAddress ( const bool on)
inlineinherited

Set reuse address.

Parameters
ontrue to enable reuse address; false to disable

Definition at line 126 of file JSocket.hh.

127 {
128 setOption(SOL_SOCKET, SO_REUSEADDR, int(on ? 1 : 0));
129 }

◆ getReuseAddress()

bool JNET::JSocket::getReuseAddress ( ) const
inlineinherited

Get reuse address.

Returns
true if enable reuse address; else false

Definition at line 137 of file JSocket.hh.

138 {
139 return (getOption<int>(SOL_SOCKET, SO_REUSEADDR) == 1);
140 }

◆ setReceiveBufferSize()

void JNET::JSocket::setReceiveBufferSize ( const int size)
inlineinherited

Set receive buffer size.

Parameters
sizenumber of bytes

Definition at line 148 of file JSocket.hh.

149 {
150 setOption(SOL_SOCKET, SO_RCVBUF, int(size));
151 }

◆ getReceiveBufferSize()

int JNET::JSocket::getReceiveBufferSize ( ) const
inlineinherited

Set receive buffer size.

Returns
number of bytes

Definition at line 159 of file JSocket.hh.

160 {
161 return getOption<int>(SOL_SOCKET, SO_RCVBUF);
162 }
T getOption(const int level, const int option) const
Get socket option.
Definition JSocket.hh:292

◆ setSendBufferSize()

void JNET::JSocket::setSendBufferSize ( const int size)
inlineinherited

Set send buffer size.

Parameters
sizenumber of bytes

Definition at line 170 of file JSocket.hh.

171 {
172 setOption(SOL_SOCKET, SO_SNDBUF, int(size));
173 }

◆ getSendBufferSize()

int JNET::JSocket::getSendBufferSize ( ) const
inlineinherited

Get send buffer size.

Returns
number of bytes

Definition at line 181 of file JSocket.hh.

182 {
183 return getOption<int>(SOL_SOCKET, SO_SNDBUF);
184 }

◆ read()

virtual int JNET::JSocket::read ( char * buffer,
const int length )
inlineoverridevirtualinherited

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, JNET::JSocketInputChannel< JPrefix_t >, JNET::JSocketNonblockingReader, and JNET::JUDPSocket.

Definition at line 198 of file JSocket.hh.

199 {
200 int pos = JFile::read(buffer, length);
201
202 if (pos == 0) {
203
204 THROW(JSocketException, "Socket read failed " << getFileDescriptor() << ' ' << errno);
205
206 } else if (pos < 0) {
207
208 switch (errno) {
209
210 case EINTR:
211 case EWOULDBLOCK:
212 //case EAGAIN:
213 break;
214
215 default:
216 THROW(JSocketException, "Socket read error " << getFileDescriptor() << ' ' << errno);
217 }
218
219 pos = 0;
220 }
221
222 return pos;
223 }
virtual int read(char *buffer, const int length)
Read data from file.
Definition JFile.hh:80

◆ write()

virtual int JNET::JSocket::write ( const char * buffer,
const int length )
inlineoverridevirtualinherited

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, JNET::JSocketNonblockingWriter, JNET::JSocketOutputChannel< JPrefix_t >, and JNET::JUDPSocket.

Definition at line 237 of file JSocket.hh.

238 {
239 int pos = JFile::write(buffer, length);
240
241 if (pos == 0) {
242
243 THROW(JSocketException, "Socket write failed " << getFileDescriptor() << ' ' << errno);
244
245 } else if (pos < 0) {
246
247 switch (errno) {
248
249 case EINTR:
250 case EWOULDBLOCK:
251 //case EAGAIN:
252 break;
253
254 default:
255 THROW(JSocketException, "Socket write error " << getFileDescriptor() << ' ' << errno);
256 }
257
258 pos = 0;
259 }
260
261 return pos;
262 }
virtual int write(const char *buffer, const int length)
Write data to file.
Definition JFile.hh:93

◆ setOption()

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 274 of file JSocket.hh.

275 {
276 socklen_t size = sizeof(T);
277
278 if (setsockopt(getFileDescriptor(), level, option, &value, size) < 0) {
279 THROW(JSocketException, "Set socket option failed " << errno);
280 }
281 }

◆ getOption()

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 292 of file JSocket.hh.

293 {
294 T value;
295 socklen_t size = sizeof(T);
296
297 if (getsockopt(getFileDescriptor(), level, option, &value, &size) < 0) {
298 THROW(JSocketException, "Get socket option failed " << errno);
299 }
300
301 return value;
302 }

◆ close()

int JLANG::JFile::close ( )
inlineinherited

Close file.

Returns
return value

Definition at line 57 of file JFile.hh.

58 {
59 int value = -1;
60
62
63 value = ::close(fileDescriptor);
64
66 result = 0;
67 }
68
69 return value;
70 }
static const int FILE_CLOSED

◆ in_avail()

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 106 of file JFile.hh.

107 {
108 return JFileDescriptorMask(*this).in_avail(timeout);
109 }

◆ out_avail()

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 119 of file JFile.hh.

120 {
121 return JFileDescriptorMask(*this).out_avail(timeout);
122 }

◆ good()

virtual bool JLANG::JFile::good ( ) const
inlinevirtualinherited

Check status.

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

Definition at line 130 of file JFile.hh.

131 {
132 return is_open() && !eof() && !bad();
133 }
bool is_open() const
Get open status.
virtual bool bad() const
Check status.
Definition JFile.hh:152
virtual bool eof() const
Check end of file.
Definition JFile.hh:163

◆ fail()

virtual bool JLANG::JFile::fail ( ) const
inlinevirtualinherited

Check status.

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

Definition at line 141 of file JFile.hh.

142 {
143 return result == 0;
144 }

◆ bad()

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 152 of file JFile.hh.

153 {
154 return fail();
155 }
virtual bool fail() const
Check status.
Definition JFile.hh:141

◆ eof()

virtual bool JLANG::JFile::eof ( ) const
inlinevirtualinherited

Check end of file.

Returns
true if end of file; else false

Definition at line 163 of file JFile.hh.

164 {
165 return result == EOF;
166 }

◆ less()

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 }

◆ getFileDescriptor()

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 }

◆ setFileDescriptor()

void JLANG::JAbstractFile::setFileDescriptor ( const int file)
inlineinherited

Set file descriptor.

Parameters
filefile descriptor

Definition at line 86 of file JAbstractFile.hh.

87 {
88 fileDescriptor = file;
89 }

◆ is_open()

bool JLANG::JAbstractFile::is_open ( ) const
inlineinherited

Get open status.

Definition at line 95 of file JAbstractFile.hh.

96 {
98 }

◆ getSockaddr() [1/2]

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 }

◆ getSockaddr() [2/2]

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 }

◆ getFamily()

int JNET::JSocketAddress::getFamily ( ) const
inlineinherited

Get family.

Returns
family

Definition at line 66 of file JSocketAddress.hh.

67 {
68 return sin_family;
69 }

◆ setFamily()

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 }

◆ getHostname()

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:77

◆ getIPnumber()

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 }

◆ setIPnumber() [1/2]

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 }

◆ setIPnumber() [2/2]

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 }

◆ getPort()

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 }

◆ setPort()

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 }

◆ sizeOf()

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 }

Member Data Documentation

◆ QUEUE_LIMIT

unsigned int JNET::JClient::QUEUE_LIMIT
static

Maximum number of messages in queue.

queue size limit

Definition at line 249 of file JLigier.cc.

◆ in

JSocketInputChannel_t JNET::JClient::in

reader for incoming messages

Definition at line 461 of file JLigier.cc.

◆ out

JSocketNonblockingWriter JNET::JClient::out

writer for outgoing messages

Definition at line 462 of file JLigier.cc.

◆ queue

std::deque<JDispatch> JNET::JClient::queue

queue for outgoing messages

Definition at line 463 of file JLigier.cc.

◆ subscriptionAll

std::set<JTag> JNET::JClient::subscriptionAll
protected

Definition at line 466 of file JLigier.cc.

◆ subscriptionAny

std::set<JTag> JNET::JClient::subscriptionAny
protected

Definition at line 467 of file JLigier.cc.

◆ nick_name

std::string JNET::JClient::nick_name
protected

Definition at line 468 of file JLigier.cc.

◆ requestAll

bool JNET::JClient::requestAll
protected

Definition at line 469 of file JLigier.cc.

◆ requestCounter

int JNET::JClient::requestCounter
protected

Definition at line 470 of file JLigier.cc.

◆ result

int JLANG::JFile::result
privateinherited

Definition at line 170 of file JFile.hh.

◆ FILE_CLOSED

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

Definition at line 27 of file JAbstractFile.hh.

◆ fileDescriptor

int JLANG::JAbstractFile::fileDescriptor
protectedinherited

Definition at line 102 of file JAbstractFile.hh.


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