X-Git-Url: http://git.tdb.fi/?p=libs%2Fdatafile.git;a=blobdiff_plain;f=source%2Fpacksource.cpp;h=00af3ad129079aa71d7d415a39f16a67bf54b5b6;hp=c8968665d41d23c936ef8efbc87fa1b5dca5bd7a;hb=f8820db0e2d1de85752de809f0a8e24394a33f61;hpb=bb46b4a63a5bfcf6a2c0930f0e03046f385725f9 diff --git a/source/packsource.cpp b/source/packsource.cpp index c896866..00af3ad 100644 --- a/source/packsource.cpp +++ b/source/packsource.cpp @@ -43,6 +43,14 @@ void PackSource::add_pack_file(const string &fn, const string &filter) i->second->collect_objects(objects); } +list PackSource::list_files() const +{ + list result; + for(FileMap::const_iterator i=files.begin(); i!=files.end(); ++i) + result.push_back(i->second->get_info()); + return result; +} + bool PackSource::is_loadable(const CollectionItemTypeBase &type, const string &name) const { ObjectMap::const_iterator i = objects.find(name); @@ -146,6 +154,14 @@ RefPtr PackSource::File::open() const return io_slice; } +PackSource::FileInfo PackSource::File::get_info() const +{ + FileInfo info; + info.name = filename; + info.size = length; + return info; +} + string PackSource::File::get_full_name() const { return format("%s/%s", pack.get_filename(), filename);