Socket class.
More...
#include <JSocket.hh>
|
static const int | getDefaultBufferSize () |
| Default socket buffer size to be used on this system.
|
|
static int | sizeOf () |
| Get size of object.
|
|
|
template<class T > |
void | setOption (const int level, const int option, const T value) |
| Set socket option.
|
|
template<class T > |
T | getOption (const int level, const int option) const |
| Get socket option.
|
|
Socket class.
Definition at line 38 of file JSocket.hh.
◆ JSocket() [1/2]
JNET::JSocket::JSocket |
( |
| ) |
|
|
inline |
Default constructor.
Definition at line 46 of file JSocket.hh.
46 :
48 {}
JFile()
Default constructor.
◆ JSocket() [2/2]
JNET::JSocket::JSocket |
( |
const int | domain, |
|
|
const int | type, |
|
|
const int | protocol = 0 ) |
|
inline |
Constructor.
- Parameters
-
domain | communication domain |
type | socket type |
protocol | protocol |
Definition at line 58 of file JSocket.hh.
60 :
61 JFile(socket(domain, type, protocol))
62 {
64 THROW(JSocketException,
"Error opening socket " << errno);
65 }
66
68 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
int getFileDescriptor() const
Get file descriptor.
void setFamily(const int family)
Set family.
◆ getDefaultBufferSize()
static const int JNET::JSocket::getDefaultBufferSize |
( |
| ) |
|
|
inlinestatic |
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__
79#else
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 |
( |
| ) |
|
|
inline |
Shut down socket.
- Returns
- return value
Definition at line 89 of file JSocket.hh.
90 {
92
94
95 return value;
96 }
int shutdown()
Shut down socket.
◆ setKeepAlive()
void JNET::JSocket::setKeepAlive |
( |
const bool | on | ) |
|
|
inline |
Set keep alive of socket.
- Parameters
-
on | true 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 }
void setOption(const int level, const int option, const T value)
Set socket option.
◆ getKeepAlive()
bool JNET::JSocket::getKeepAlive |
( |
| ) |
const |
|
inline |
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 | ) |
|
|
inline |
Set reuse address.
- Parameters
-
on | true 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 |
|
inline |
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 | ) |
|
|
inline |
Set receive buffer size.
- Parameters
-
Definition at line 148 of file JSocket.hh.
149 {
150 setOption(SOL_SOCKET, SO_RCVBUF,
int(size));
151 }
◆ getReceiveBufferSize()
int JNET::JSocket::getReceiveBufferSize |
( |
| ) |
const |
|
inline |
Set receive buffer size.
- Returns
- number of bytes
Definition at line 159 of file JSocket.hh.
160 {
162 }
T getOption(const int level, const int option) const
Get socket option.
◆ setSendBufferSize()
void JNET::JSocket::setSendBufferSize |
( |
const int | size | ) |
|
|
inline |
Set send buffer size.
- Parameters
-
Definition at line 170 of file JSocket.hh.
171 {
172 setOption(SOL_SOCKET, SO_SNDBUF,
int(size));
173 }
◆ getSendBufferSize()
int JNET::JSocket::getSendBufferSize |
( |
| ) |
const |
|
inline |
Get send buffer size.
- Returns
- number of bytes
Definition at line 181 of file JSocket.hh.
◆ read()
virtual int JNET::JSocket::read |
( |
char * | buffer, |
|
|
const int | length ) |
|
inlineoverridevirtual |
Read data from socket.
This method handles I/O errors in such a way that:
- the return value is set to zero if no data are read;
- an exception is thrown in case of a fatal error;
- Parameters
-
buffer | buffer |
length | number 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 {
201
202 if (pos == 0) {
203
205
206 } else if (pos < 0) {
207
208 switch (errno) {
209
210 case EINTR:
211 case EWOULDBLOCK:
212
213 break;
214
215 default:
217 }
218
219 pos = 0;
220 }
221
222 return pos;
223 }
virtual int read(char *buffer, const int length)
Read data from file.
◆ write()
virtual int JNET::JSocket::write |
( |
const char * | buffer, |
|
|
const int | length ) |
|
inlineoverridevirtual |
Write data to socket.
This method handles I/O errors in such a way that:
- the return value is set to zero if no data are written;
- an exception is thrown in case of a fatal error;
- Parameters
-
buffer | buffer |
length | number 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 {
240
241 if (pos == 0) {
242
244
245 } else if (pos < 0) {
246
247 switch (errno) {
248
249 case EINTR:
250 case EWOULDBLOCK:
251
252 break;
253
254 default:
256 }
257
258 pos = 0;
259 }
260
261 return pos;
262 }
virtual int write(const char *buffer, const int length)
Write data to file.
◆ setOption()
template<class T >
void JNET::JSocket::setOption |
( |
const int | level, |
|
|
const int | option, |
|
|
const T | value ) |
|
inlineprotected |
Set socket option.
- Parameters
-
level | level |
option | option |
value | value |
Definition at line 274 of file JSocket.hh.
275 {
276 socklen_t size = sizeof(T);
277
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 |
|
inlineprotected |
Get socket option.
- Parameters
-
- Returns
- value
Definition at line 292 of file JSocket.hh.
293 {
294 T value;
295 socklen_t size = sizeof(T);
296
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
64
67 }
68
69 return value;
70 }
static const int FILE_CLOSED
◆ in_avail()
Check availability of input.
This method returns true if at least one byte can be read without blocking.
- Parameters
-
- 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()
Check availability of output.
This method returns true if at least one byte can be written without blocking.
- Parameters
-
- 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 {
133 }
bool is_open() const
Get open status.
virtual bool bad() const
Check status.
virtual bool eof() const
Check end of file.
◆ 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.
◆ 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 {
155 }
virtual bool fail() const
Check status.
◆ 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.
◆ less()
bool JLANG::JAbstractFile::less |
( |
const JAbstractFile & | file | ) |
const |
|
inlineinherited |
Less than operation.
- Parameters
-
file | JAbstractFile to be compared |
- Returns
- true if this file descriptor is less; else false
Definition at line 64 of file JAbstractFile.hh.
◆ getFileDescriptor()
int JLANG::JAbstractFile::getFileDescriptor |
( |
| ) |
const |
|
inlineinherited |
Get file descriptor.
- Returns
- file descriptor
Definition at line 75 of file JAbstractFile.hh.
◆ setFileDescriptor()
void JLANG::JAbstractFile::setFileDescriptor |
( |
const int | file | ) |
|
|
inlineinherited |
◆ is_open()
bool JLANG::JAbstractFile::is_open |
( |
| ) |
const |
|
inlineinherited |
◆ 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
-
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 {
91 }
int getIPnumber() const
Get IP number.
std::string getHostname()
Get host name.
◆ 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
-
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
-
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 }
◆ result
◆ FILE_CLOSED
const int JLANG::JAbstractFile::FILE_CLOSED = -1 |
|
staticinherited |
◆ fileDescriptor
int JLANG::JAbstractFile::fileDescriptor |
|
protectedinherited |
The documentation for this class was generated from the following file: