-----------------------------------------------------------------------------
| 131 | |
| 132 | //----------------------------------------------------------------------------- |
| 133 | bool FileStream::open(const String &inFileName, Torque::FS::File::AccessMode inMode) |
| 134 | { |
| 135 | AssertWarn(0 == mStreamCaps, "FileStream::setPosition: the stream is already open"); |
| 136 | AssertFatal(inFileName.isNotEmpty(), "FileStream::open: empty filename"); |
| 137 | |
| 138 | // make sure the file stream's state is clean |
| 139 | clearBuffer(); |
| 140 | |
| 141 | Torque::Path filePath(inFileName); |
| 142 | |
| 143 | // IF we are writing, make sure the path exists |
| 144 | if( inMode == Torque::FS::File::Write || inMode == Torque::FS::File::WriteAppend || inMode == Torque::FS::File::ReadWrite ) |
| 145 | Torque::FS::CreatePath(filePath); |
| 146 | |
| 147 | mFile = Torque::FS::OpenFile(filePath, inMode); |
| 148 | |
| 149 | if (mFile != NULL) |
| 150 | { |
| 151 | setStatus(); |
| 152 | switch (inMode) |
| 153 | { |
| 154 | case Torque::FS::File::Read: |
| 155 | mStreamCaps = U32(StreamRead) | |
| 156 | U32(StreamPosition); |
| 157 | break; |
| 158 | case Torque::FS::File::Write: |
| 159 | case Torque::FS::File::WriteAppend: |
| 160 | mStreamCaps = U32(StreamWrite) | |
| 161 | U32(StreamPosition); |
| 162 | break; |
| 163 | case Torque::FS::File::ReadWrite: |
| 164 | mStreamCaps = U32(StreamRead) | |
| 165 | U32(StreamWrite) | |
| 166 | U32(StreamPosition); |
| 167 | break; |
| 168 | default: |
| 169 | AssertFatal(false, String::ToString( "FileStream::open: bad access mode on %s", inFileName.c_str() )); |
| 170 | } |
| 171 | } |
| 172 | else |
| 173 | { |
| 174 | Stream::setStatus(IOError); |
| 175 | return(false); |
| 176 | } |
| 177 | |
| 178 | return getStatus() == Ok; |
| 179 | } |
| 180 | |
| 181 | //----------------------------------------------------------------------------- |
| 182 | void FileStream::close() |
nothing calls this directly
no test coverage detected