Auxiliary class for method select.
More...
#include <JFileDescriptorMask.hh>
Auxiliary class for method select.
This class encapsulates the fd_set
data structure.
Definition at line 25 of file JFileDescriptorMask.hh.
◆ JFileDescriptorMask() [1/3]
JLANG::JFileDescriptorMask::JFileDescriptorMask |
( |
| ) |
|
|
inline |
Default constructor.
Definition at line 37 of file JFileDescriptorMask.hh.
37 :
40 {
42 }
const fd_set * get() const
Get pointer to mask.
int maximum_file_descriptor
int number_of_file_descriptors
◆ JFileDescriptorMask() [2/3]
JLANG::JFileDescriptorMask::JFileDescriptorMask |
( |
const JAbstractFile & | file | ) |
|
|
inline |
Constructor.
- Parameters
-
Definition at line 50 of file JFileDescriptorMask.hh.
50 :
53 {
55
57 }
void set(const int file_descriptor)
Set file descriptor.
◆ JFileDescriptorMask() [3/3]
JLANG::JFileDescriptorMask::JFileDescriptorMask |
( |
const int | file_descriptor | ) |
|
|
inline |
◆ get() [1/2]
const fd_set * JLANG::JFileDescriptorMask::get |
( |
| ) |
const |
|
inline |
Get pointer to mask.
- Returns
- pointer to mask
Definition at line 80 of file JFileDescriptorMask.hh.
81 {
82 return static_cast<const fd_set*>(this);
83 }
◆ get() [2/2]
fd_set * JLANG::JFileDescriptorMask::get |
( |
| ) |
|
|
inline |
Get pointer to mask.
- Returns
- pointer to mask
Definition at line 91 of file JFileDescriptorMask.hh.
92 {
93 return static_cast<fd_set*>(this);
94 }
◆ operator&() [1/2]
const fd_set * JLANG::JFileDescriptorMask::operator& |
( |
| ) |
const |
|
inline |
◆ operator&() [2/2]
fd_set * JLANG::JFileDescriptorMask::operator& |
( |
| ) |
|
|
inline |
◆ reset() [1/3]
void JLANG::JFileDescriptorMask::reset |
( |
const bool | option = true | ) |
|
|
inline |
Reset mask.
A hard reset causes the reset of the complete mask whereas a soft reset causes the reset of the internal parameters only.
- Parameters
-
option | true hard reset; else soft reset |
Definition at line 126 of file JFileDescriptorMask.hh.
127 {
128 if (option) {
129
131
132 case 0:
133 break;
134
135 case 1:
137 break;
138
139 default:
141 break;
142 }
143 }
144
147 }
◆ set() [1/2]
void JLANG::JFileDescriptorMask::set |
( |
const int | file_descriptor | ) |
|
|
inline |
Set file descriptor.
- Parameters
-
file_descriptor | file descriptor |
Definition at line 155 of file JFileDescriptorMask.hh.
156 {
157 if (!
has(file_descriptor)) {
158
159 FD_SET(file_descriptor,
get());
160
163 }
164
166 }
167 }
bool has(const int file_descriptor) const
Has file descriptor.
◆ set() [2/2]
void JLANG::JFileDescriptorMask::set |
( |
const JAbstractFile & | file | ) |
|
|
inline |
◆ reset() [2/3]
void JLANG::JFileDescriptorMask::reset |
( |
const int | file_descriptor | ) |
|
|
inline |
Reset file descriptor.
- Parameters
-
file_descriptor | file descriptor |
Definition at line 186 of file JFileDescriptorMask.hh.
187 {
188 if (
has(file_descriptor)) {
189
190 FD_CLR(file_descriptor,
get());
191
194 }
195
197 }
198 }
◆ reset() [3/3]
void JLANG::JFileDescriptorMask::reset |
( |
const JAbstractFile & | file | ) |
|
|
inline |
Reset file.
- Parameters
-
Definition at line 206 of file JFileDescriptorMask.hh.
207 {
208 reset(file.getFileDescriptor());
209 }
void reset(const bool option=true)
Reset mask.
◆ has() [1/2]
bool JLANG::JFileDescriptorMask::has |
( |
const int | file_descriptor | ) |
const |
|
inline |
Has file descriptor.
- Parameters
-
file_descriptor | file descriptor |
- Returns
- true if file descriptor set; else false
Definition at line 218 of file JFileDescriptorMask.hh.
219 {
220 return FD_ISSET(file_descriptor,
get());
221 }
◆ has() [2/2]
bool JLANG::JFileDescriptorMask::has |
( |
const JAbstractFile & | file | ) |
const |
|
inline |
Has file.
- Parameters
-
- Returns
- true if file set; else false
Definition at line 230 of file JFileDescriptorMask.hh.
231 {
232 return has(file.getFileDescriptor());
233 }
◆ getNumberOfFileDescriptors()
int JLANG::JFileDescriptorMask::getNumberOfFileDescriptors |
( |
| ) |
const |
|
inline |
◆ empty()
bool JLANG::JFileDescriptorMask::empty |
( |
| ) |
const |
|
inline |
Check setting of file descriptors.
- Returns
- true if no file descriptors are set; else false
Definition at line 252 of file JFileDescriptorMask.hh.
◆ in_avail()
Check availability of input.
This method returns true if at least one byte can be read without blocking. Following the select
call, this method overwrites the internal mask!
- Parameters
-
- Returns
- true if ready to read; else false
Definition at line 266 of file JFileDescriptorMask.hh.
267 {
269
270 if (nfds > 0)
271 return true;
272 else if (nfds == 0)
273 return false;
274 else
275 THROW(JSocketException,
"select error " << errno);
276 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
int getNumberOfFileDescriptors() const
Get number of file descriptors.
◆ out_avail()
Check availability of output.
This method returns true if at least one byte can be written without blocking. Following the select
call, this method overwrites the internal mask!
- Parameters
-
- Returns
- true if ready to write; else false
Definition at line 287 of file JFileDescriptorMask.hh.
288 {
290
291 if (nfds > 0)
292 return true;
293 else if (nfds == 0)
294 return false;
295 else
296 THROW(JSocketException,
"select error " << errno);
297 }
◆ MAXIMUM_FILE_DESCRIPTOR
const int JLANG::JFileDescriptorMask::MAXIMUM_FILE_DESCRIPTOR = FD_SETSIZE |
|
static |
◆ maximum_file_descriptor
int JLANG::JFileDescriptorMask::maximum_file_descriptor |
|
private |
◆ number_of_file_descriptors
int JLANG::JFileDescriptorMask::number_of_file_descriptors |
|
private |
The documentation for this class was generated from the following file: