From: Mikko Rasa Date: Sat, 12 Oct 2013 17:10:45 +0000 (+0300) Subject: Expose raw open functionality from Collection X-Git-Url: http://git.tdb.fi/?p=libs%2Fdatafile.git;a=commitdiff_plain;h=7feeeacf8fa3eae889cb256c42ada615c4761eec Expose raw open functionality from Collection There are several scenarios where streaming or asynchronous loading is useful. --- diff --git a/source/collection.cpp b/source/collection.cpp index 65b4d5a..cffb7e2 100644 --- a/source/collection.cpp +++ b/source/collection.cpp @@ -92,7 +92,7 @@ void Collection::add_source(CollectionSource &s) sources.push_back(&s); } -IO::Seekable *Collection::open_from_sources(const string &name) +IO::Seekable *Collection::open_raw(const string &name) const { for(SourceList::const_iterator i=sources.begin(); i!=sources.end(); ++i) if(IO::Seekable *io = (*i)->open(name)) diff --git a/source/collection.h b/source/collection.h index a7ac59b..5f0650c 100644 --- a/source/collection.h +++ b/source/collection.h @@ -263,10 +263,14 @@ protected: in the order they are added. */ void add_source(CollectionSource &); +public: /** Opens a raw resource, without interpreting it as object data. Null is returned if no such file is found. The caller must dispose of the returned object when done with it. */ - IO::Seekable *open_from_sources(const std::string &); + IO::Seekable *open_raw(const std::string &) const; + +protected: + IO::Seekable *open_from_sources(const std::string &n) { return open_raw(n); } private: void gather_names_from_sources(std::list &, const CollectionItemTypeBase &) const;