Changed Archive::openFile to return a SeekableReadStream* instead of a FilePtr
svn-id: r34312
This commit is contained in:
parent
18fb6348dd
commit
e1918341af
2 changed files with 15 additions and 11 deletions
|
@ -70,19 +70,19 @@ bool FSDirectory::hasFile(const String &name) {
|
|||
return node.exists();
|
||||
}
|
||||
|
||||
FilePtr FSDirectory::openFile(const String &name) {
|
||||
SeekableReadStream *FSDirectory::openFile(const String &name) {
|
||||
if (name.empty() || !_node.isDirectory()) {
|
||||
return FilePtr();
|
||||
return 0;
|
||||
}
|
||||
|
||||
FilesystemNode node = lookupCache(_fileCache, name);
|
||||
|
||||
if (!node.exists()) {
|
||||
warning("FSDirectory::openFile: Trying to open a FilesystemNode which does not exist");
|
||||
return FilePtr();
|
||||
return 0;
|
||||
} else if (node.isDirectory()) {
|
||||
warning("FSDirectory::openFile: Trying to open a FilesystemNode which is a directory");
|
||||
return FilePtr();
|
||||
return 0;
|
||||
}
|
||||
|
||||
SeekableReadStream *stream = node.openForReading();
|
||||
|
@ -90,7 +90,7 @@ FilePtr FSDirectory::openFile(const String &name) {
|
|||
warning("FSDirectory::openFile: Can't create stream for file '%s'", name.c_str());
|
||||
}
|
||||
|
||||
return FilePtr(stream);
|
||||
return stream;
|
||||
}
|
||||
|
||||
SharedPtr<FSDirectory> FSDirectory::getSubDirectory(const String &name) {
|
||||
|
@ -269,9 +269,9 @@ int SearchSet::matchPattern(StringList &list, const String &pattern) {
|
|||
return matches;
|
||||
}
|
||||
|
||||
FilePtr SearchSet::openFile(const String &name) {
|
||||
SeekableReadStream *SearchSet::openFile(const String &name) {
|
||||
if (name.empty()) {
|
||||
return FilePtr();
|
||||
return 0;
|
||||
}
|
||||
|
||||
ArchiveList::iterator it = _list.begin();
|
||||
|
@ -281,7 +281,7 @@ FilePtr SearchSet::openFile(const String &name) {
|
|||
}
|
||||
}
|
||||
|
||||
return FilePtr();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -35,6 +35,10 @@
|
|||
|
||||
namespace Common {
|
||||
|
||||
/**
|
||||
* FilePtr is a convenient way to keep track of a SeekableReadStream without
|
||||
* having to worry about releasing its memory.
|
||||
*/
|
||||
typedef SharedPtr<SeekableReadStream> FilePtr;
|
||||
|
||||
/**
|
||||
|
@ -75,7 +79,7 @@ public:
|
|||
* Create a stream bound to a file in the archive.
|
||||
* @return The newly created input stream.
|
||||
*/
|
||||
virtual FilePtr openFile(const String &name) = 0;
|
||||
virtual SeekableReadStream *openFile(const String &name) = 0;
|
||||
};
|
||||
|
||||
|
||||
|
@ -136,7 +140,7 @@ public:
|
|||
|
||||
virtual bool hasFile(const String &name);
|
||||
virtual int matchPattern(StringList &list, const String &pattern);
|
||||
virtual FilePtr openFile(const String &name);
|
||||
virtual SeekableReadStream *openFile(const String &name);
|
||||
};
|
||||
|
||||
|
||||
|
@ -193,7 +197,7 @@ public:
|
|||
* Implements openFile from Archive base class. The current policy is
|
||||
* opening the first file encountered that matches the name.
|
||||
*/
|
||||
virtual FilePtr openFile(const String &name);
|
||||
virtual SeekableReadStream *openFile(const String &name);
|
||||
};
|
||||
|
||||
} // namespace Common
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue