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)
|