1 #include "daq/slc/system/FileDescriptor.h"
3 #include <daq/slc/base/IOException.h>
6 #include <sys/select.h>
11 FileDescriptor::FileDescriptor()
21 FileDescriptor::FileDescriptor(
int fd)
26 FileDescriptor::~FileDescriptor()
31 int FileDescriptor::get_fd()
const
36 bool FileDescriptor::select(
int sec,
int usec)
45 if (sec >= 0 && usec >= 0) {
46 timeval t = {sec, usec};
47 ret = ::select(FD_SETSIZE, &fds, NULL, NULL, &t);
49 ret = ::select(FD_SETSIZE, &fds, NULL, NULL, NULL);
55 if (FD_ISSET(m_fd, &fds)) {
62 bool FileDescriptor::select2(
int sec,
int usec)
71 if (sec >= 0 && usec >= 0) {
72 timeval t = {sec, usec};
73 ret = ::select(FD_SETSIZE, NULL, &fds, NULL, &t);
75 ret = ::select(FD_SETSIZE, NULL, &fds, NULL, NULL);
81 if (FD_ISSET(m_fd, &fds)) {
88 bool FileDescriptor::close()
91 if (::close(m_fd) != 0) {