8 #include "daq/slc/system/FileDescriptor.h"
10 #include <daq/slc/base/IOException.h>
13 #include <sys/select.h>
18 FileDescriptor::FileDescriptor()
28 FileDescriptor::FileDescriptor(
int fd)
33 FileDescriptor::~FileDescriptor()
38 int FileDescriptor::get_fd()
const
43 bool FileDescriptor::select(
int sec,
int usec)
52 if (sec >= 0 && usec >= 0) {
53 timeval t = {sec, usec};
54 ret = ::select(FD_SETSIZE, &fds, NULL, NULL, &t);
56 ret = ::select(FD_SETSIZE, &fds, NULL, NULL, NULL);
62 if (FD_ISSET(m_fd, &fds)) {
69 bool FileDescriptor::select2(
int sec,
int usec)
78 if (sec >= 0 && usec >= 0) {
79 timeval t = {sec, usec};
80 ret = ::select(FD_SETSIZE, NULL, &fds, NULL, &t);
82 ret = ::select(FD_SETSIZE, NULL, &fds, NULL, NULL);
88 if (FD_ISSET(m_fd, &fds)) {
95 bool FileDescriptor::close()
98 if (::close(m_fd) != 0) {
Abstract base class for different kinds of events.