]> git.tdb.fi Git - libs/datafile.git/commitdiff
Expose raw open functionality from Collection
authorMikko Rasa <tdb@tdb.fi>
Sat, 12 Oct 2013 17:10:45 +0000 (20:10 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sat, 12 Oct 2013 17:10:45 +0000 (20:10 +0300)
There are several scenarios where streaming or asynchronous loading is
useful.

source/collection.cpp
source/collection.h

index 65b4d5a3914192192f2092425e686b7d8ee56576..cffb7e22e7041ba48268c9643c6d7791e118407f 100644 (file)
@@ -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))
index a7ac59bc8069b19697fab896826ef499b3a84e8d..5f0650c6761043977e85a33e55c6854d25b1703f 100644 (file)
@@ -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<std::string> &, const CollectionItemTypeBase &) const;