From: Christian P. <cp...@us...> - 2005-01-01 19:00:21
|
Update of /cvsroot/pclasses/pclasses2/src/System In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv395/src/System Modified Files: Pipe.posix.cpp File.posix.cpp Log Message: Removed LogicError from open()/close() new semantics: open(): reopen with new file close(): closes file (when open) Index: File.posix.cpp =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/System/File.posix.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- File.posix.cpp 31 Dec 2004 03:21:19 -0000 1.9 +++ File.posix.cpp 1 Jan 2005 19:00:08 -0000 1.10 @@ -108,28 +108,24 @@ } void File::open(const Unicode::String& name, AccessMode amode, OpenMode omode, - ShareMode smode) throw(LogicError, IO::IOError) + ShareMode smode) throw(IO::IOError) { - if(!valid()) - { - int flags = OpenMode2Flags(omode) | AccessMode2Flags(amode); - - int handle = ::open(name.utf8().c_str(), flags, 0644); - if(handle == -1) - throw IO::IOError(errno, "Could not open file", P_SOURCEINFO); - - _handle = (unsigned long)handle; - IODevice::setAccess(amode); - IODevice::setValid(true); - IODevice::setEof(false); + if(valid()) + close(); + + int flags = OpenMode2Flags(omode) | AccessMode2Flags(amode); - return; - } + int handle = ::open(name.utf8().c_str(), flags, 0644); + if(handle == -1) + throw IO::IOError(errno, "Could not open file", P_SOURCEINFO); - throw LogicError("File is already open", P_SOURCEINFO); + _handle = (unsigned long)handle; + IODevice::setAccess(amode); + IODevice::setValid(true); + IODevice::setEof(false); } -void File::close() throw(LogicError, IO::IOError) +void File::close() throw(IO::IOError) { if(valid()) { @@ -139,10 +135,7 @@ _handle = (unsigned long)-1; IODevice::setAccess(None); IODevice::setValid(false); - return; } - - throw LogicError("File is not open", P_SOURCEINFO); } size_t File::read(char* buffer, size_t count) throw(IO::IOError) Index: Pipe.posix.cpp =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/System/Pipe.posix.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Pipe.posix.cpp 30 Dec 2004 19:36:48 -0000 1.6 +++ Pipe.posix.cpp 1 Jan 2005 19:00:08 -0000 1.7 @@ -69,7 +69,7 @@ return std::make_pair(readPipe, writePipe); } -void Pipe::close() throw(LogicError, IO::IOError) +void Pipe::close() throw(IO::IOError) { if(valid()) { @@ -79,10 +79,7 @@ _handle = (unsigned long)-1; IODevice::setAccess(None); IODevice::setValid(false); - return; } - - throw LogicError("Pipe is not open", P_SOURCEINFO); } size_t Pipe::read(char* buffer, size_t count) throw(IO::IOError) |