MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / open

Method open

Engine/source/core/stream/fileStream.cpp:133–179  ·  view source on GitHub ↗

-----------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

131
132//-----------------------------------------------------------------------------
133bool 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//-----------------------------------------------------------------------------
182void FileStream::close()

Callers

nothing calls this directly

Calls 5

CreatePathFunction · 0.85
OpenFileFunction · 0.85
U32Enum · 0.70
isNotEmptyMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected