#endif
}
+ FileHandle openFile(const int fileDescriptor, bool readOnly)
+ {
+ return InvalidFileHandle;
+ }
+
void closeFile(FileHandle file)
{
CloseHandle(file);
return fopen(path, readOnly ? "rb" : "rb+");
}
+ FileHandle openFile(const int fileDescriptor, bool readOnly)
+ {
+ return fdopen(fileDescriptor, readOnly ? "rb" : "rb+");
+ }
+
void closeFile(FileHandle file)
{
fclose(file);
}
}
+FileStream::FileStream(int fileDescriptor, bool openReadOnly)
+ : d(new FileStreamPrivate(""))
+{
+ // First try with read / write mode, if that fails, fall back to read only.
+
+ if(!openReadOnly)
+ d->file = openFile(fileDescriptor, false);
+
+ if(d->file != InvalidFileHandle)
+ d->readOnly = false;
+ else
+ d->file = openFile(fileDescriptor, true);
+
+ if(d->file == InvalidFileHandle)
+ {
+ debug("Could not open file using file descriptor");
+ }
+}
+
FileStream::~FileStream()
{
if(isOpen())
*/
FileStream(FileName file, bool openReadOnly = false);
+ /*!
+ * Construct a File object and opens the \a file using file descriptor.
+ */
+ FileStream(int fileDescriptor, bool openReadOnly = false);
+
/*!
* Destroys this FileStream instance.
*/