From: Marc D. <ma...@us...> - 2005-02-14 19:39:25
|
Update of /cvsroot/pclasses/pclasses2/src/System In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12446/src/System Modified Files: Ps2Device.linux.cpp Log Message: adapted read() seek() and size() for Ps2Device Index: Ps2Device.linux.cpp =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/System/Ps2Device.linux.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Ps2Device.linux.cpp 14 Feb 2005 19:13:36 -0000 1.1 +++ Ps2Device.linux.cpp 14 Feb 2005 19:39:15 -0000 1.2 @@ -73,7 +73,19 @@ size_t Ps2Device::_read(char* buffer, size_t count) throw(IO::IOError) { - return _handle->read(buffer, count); + size_t ret = 0; + struct pollfd pfd[1]; + pfd[0].fd = Device::handle(); + pfd[0].events = POLLIN; + + if( poll(pfd, 1, 800) > 0 ) { + ret = Device::read(buffer, count); + return ret; + } else throw IO::IOError(errno, "Could not read from device.", P_SOURCEINFO); + + return ret; + + //return _handle->read(buffer, count); } size_t Ps2Device::_peek(char* buffer, size_t count) throw(IO::IOError) @@ -81,31 +93,29 @@ return _handle->peek(buffer, count); } -size_t Ps2Device::_write(const char* buffer, size_t count) - throw(IO::IOError) +size_t Ps2Device::_write(const char* buffer, size_t count) throw(IO::IOError) { return _handle->write(buffer, count); } -offset_t Ps2Device::_seek(offset_t offset, SeekMode mode) - throw(IO::IOError) +offset_t Ps2Device::_seek(offset_t offset, SeekMode mode) throw(IO::IOError) { - return _handle->seek(offset, mode); + return 0; } bool Ps2Device::_isSeekable() const throw() { - return _handle->isSeekable(); + return false; } void Ps2Device::_sync() const throw(IO::IOError) { - _handle->sync(); + } offset_t Ps2Device::_size() const throw(IO::IOError) { - return _handle->size(); + return 0; } unsigned long Ps2Device::nosHandle() const throw() |