Jpp  17.3.0-rc.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes | List of all members
JNET::JSelect Class Reference

Wrapper class for select call. More...

#include <JSelect.hh>

Inheritance diagram for JNET::JSelect:
JNET::JSelectReader JNET::JSelectWriter

Public Member Functions

 JSelect ()
 Default constructor. More...
 
void reset ()
 Reset. More...
 
bool operator() ()
 Infinite wait select call. More...
 
bool operator() (JTimeval timeout)
 Select call. More...
 
int operator() (JTimeval *timeout)
 Infinite wait select call. More...
 
JFileDescriptorMaskgetReaderMask ()
 Get reader mask. More...
 
void setReaderMask (const JAbstractFile &file)
 Set reader mask. More...
 
bool hasReaderMask (const JAbstractFile &file) const
 Has reader file. More...
 
int operator() (timeval *timeout=NULL)
 Select call. More...
 
JFileDescriptorMaskgetWriterMask ()
 Get writer mask. More...
 
void setWriterMask (const JAbstractFile &file)
 Set writer mask. More...
 
bool hasWriterMask (const JAbstractFile &file) const
 Has writer file. More...
 
int operator() (timeval *timeout=NULL)
 Select call. More...
 

Protected Attributes

JFileDescriptorMask readerMask
 
JFileDescriptorMask writerMask
 

Detailed Description

Wrapper class for select call.

Definition at line 34 of file JSelect.hh.

Constructor & Destructor Documentation

JNET::JSelect::JSelect ( )
inline

Default constructor.

Definition at line 42 of file JSelect.hh.

42  :
43  JSelectReader(),
45  {}
JSelectWriter()
Default constructor.
JSelectReader()
Default constructor.

Member Function Documentation

void JNET::JSelect::reset ( )
inline

Reset.

Definition at line 51 of file JSelect.hh.

52  {
53  static_cast<JSelectReader&>(*this).reset();
54  static_cast<JSelectWriter&>(*this).reset();
55  }
void reset()
Reset.
Wrapper class for select call.
void reset()
Reset.
Wrapper class for select call.
bool JNET::JSelect::operator() ( )
inline

Infinite wait select call.

Returns
true if data can be read or written; else false

Definition at line 64 of file JSelect.hh.

65  {
66  return this->operator ()(0);
67  }
bool operator()()
Infinite wait select call.
Definition: JSelect.hh:64
bool JNET::JSelect::operator() ( JTimeval  timeout)
inline

Select call.

Parameters
timeouttimeout
Returns
true if data can be read or written; else false

Definition at line 76 of file JSelect.hh.

77  {
78  return this->operator ()(static_cast<JTimeval*>(
79  static_cast<void*>(&timeout)));
80  }
bool operator()()
Infinite wait select call.
Definition: JSelect.hh:64
int JNET::JSelect::operator() ( JTimeval timeout)
inline

Infinite wait select call.

Returns
number of valid file descriptors

Definition at line 88 of file JSelect.hh.

89  {
90  int nfds = std::max(readerMask.getNumberOfFileDescriptors(),
92 
93  nfds += 1;
94  nfds = ::select(nfds, &readerMask, &writerMask, NULL, timeout->get());
95 
96  if (nfds != 0) {
97 
98  if (nfds < 0) {
99  if (errno != EINTR) {
100  THROW(JSelectException, "JSelect(..) failed.");
101  }
102  }
103 
104  } else {
105 
106  readerMask.reset(false); // soft reset
107  writerMask.reset(false); // soft reset
108  }
109 
110  return nfds;
111  }
JFileDescriptorMask writerMask
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
const fd_set * get() const
Get pointer to mask.
void reset(const bool option=true)
Reset mask.
int getNumberOfFileDescriptors() const
Get number of file descriptors.
JFileDescriptorMask readerMask
JFileDescriptorMask& JNET::JSelectReader::getReaderMask ( )
inlineinherited

Get reader mask.

Returns
mask

Definition at line 46 of file JSelectReader.hh.

47  {
48  return readerMask;
49  }
JFileDescriptorMask readerMask
void JNET::JSelectReader::setReaderMask ( const JAbstractFile file)
inlineinherited

Set reader mask.

Parameters
filefile

Definition at line 57 of file JSelectReader.hh.

58  {
60  }
then usage $script[< detector identifier >< run range >]< QA/QCfile > nExample script to produce data quality plots nWhen a detector identifier and run range are data are downloaded from the database nand subsequently stored in the given QA QC file
Definition: JDataQuality.sh:19
void set(const int file_descriptor)
Set file descriptor.
JFileDescriptorMask readerMask
bool JNET::JSelectReader::hasReaderMask ( const JAbstractFile file) const
inlineinherited

Has reader file.

Parameters
filefile
Returns
true if file set; else false

Definition at line 69 of file JSelectReader.hh.

70  {
71  return readerMask.has(file);
72  }
then usage $script[< detector identifier >< run range >]< QA/QCfile > nExample script to produce data quality plots nWhen a detector identifier and run range are data are downloaded from the database nand subsequently stored in the given QA QC file
Definition: JDataQuality.sh:19
bool has(const int file_descriptor) const
Has file descriptor.
JFileDescriptorMask readerMask
int JNET::JSelectReader::operator() ( timeval *  timeout = NULL)
inlineinherited

Select call.

Parameters
timeouttimeout
Returns
number of valid file descriptors

Definition at line 102 of file JSelectReader.hh.

103  {
105 
106  nfds += 1;
107  nfds = ::select(nfds, &readerMask, NULL, NULL, timeout);
108 
109  if (nfds != 0) {
110 
111  if (nfds < 0) {
112  if (errno != EINTR) {
113  THROW(JSelectException, "JSelectReader(..) failed.");
114  }
115  }
116 
117  } else {
118 
119  readerMask.reset(false); // soft reset
120  }
121 
122  return nfds;
123  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
void reset(const bool option=true)
Reset mask.
int getNumberOfFileDescriptors() const
Get number of file descriptors.
JFileDescriptorMask readerMask
JFileDescriptorMask& JNET::JSelectWriter::getWriterMask ( )
inlineinherited

Get writer mask.

Returns
mask

Definition at line 46 of file JSelectWriter.hh.

47  {
48  return writerMask;
49  }
JFileDescriptorMask writerMask
void JNET::JSelectWriter::setWriterMask ( const JAbstractFile file)
inlineinherited

Set writer mask.

Parameters
filefile

Definition at line 57 of file JSelectWriter.hh.

58  {
60  }
JFileDescriptorMask writerMask
then usage $script[< detector identifier >< run range >]< QA/QCfile > nExample script to produce data quality plots nWhen a detector identifier and run range are data are downloaded from the database nand subsequently stored in the given QA QC file
Definition: JDataQuality.sh:19
void set(const int file_descriptor)
Set file descriptor.
bool JNET::JSelectWriter::hasWriterMask ( const JAbstractFile file) const
inlineinherited

Has writer file.

Parameters
filefile
Returns
true if file set; else false

Definition at line 69 of file JSelectWriter.hh.

70  {
71  return writerMask.has(file);
72  }
JFileDescriptorMask writerMask
then usage $script[< detector identifier >< run range >]< QA/QCfile > nExample script to produce data quality plots nWhen a detector identifier and run range are data are downloaded from the database nand subsequently stored in the given QA QC file
Definition: JDataQuality.sh:19
bool has(const int file_descriptor) const
Has file descriptor.
int JNET::JSelectWriter::operator() ( timeval *  timeout = NULL)
inlineinherited

Select call.

Parameters
timeouttimeout
Returns
number of valid file descriptors

Definition at line 102 of file JSelectWriter.hh.

103  {
105 
106  nfds += 1;
107  nfds = ::select(nfds, NULL, &writerMask, NULL, timeout);
108 
109  if (nfds != 0) {
110 
111  if (nfds < 0) {
112  if (errno != EINTR) {
113  THROW(JSelectException, "JSelectWriter(..) failed.");
114  }
115  }
116 
117  } else {
118 
119  writerMask.reset(false); // soft reset
120  }
121 
122  return nfds;
123  }
JFileDescriptorMask writerMask
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
void reset(const bool option=true)
Reset mask.
int getNumberOfFileDescriptors() const
Get number of file descriptors.

Member Data Documentation

JFileDescriptorMask JNET::JSelectReader::readerMask
protectedinherited

Definition at line 127 of file JSelectReader.hh.

JFileDescriptorMask JNET::JSelectWriter::writerMask
protectedinherited

Definition at line 127 of file JSelectWriter.hh.


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