X-Git-Url: http://git.tdb.fi/?p=libs%2Fdatafile.git;a=blobdiff_plain;f=source%2Fcollection.h;h=9f5ddfcf7f78e5ba988636cc501edf05a87247a2;hp=3d5b7f0a6abce95bc8aa5d6ec05749be3ec6f8b2;hb=76c532f3f5ff079cf7b2016343a1ff73d497c50f;hpb=e639a0c06a1909fdd7bf12b07ce6ef59e1a9ac2c diff --git a/source/collection.h b/source/collection.h index 3d5b7f0..9f5ddfc 100644 --- a/source/collection.h +++ b/source/collection.h @@ -130,8 +130,14 @@ protected: insert_unique(items, name, ptr); } + /** Adds the name of a future object, guessing its type. If a type matching + the name can't be found, nothing is done. */ void add_future(const std::string &name); + /** Adds the name of a future object, using a keyword to determine its type. + The keyword must be known to the collection. */ + void add_future_with_keyword(const std::string &name, const std::string &); + public: /// Gets a typed object from the collection. template @@ -308,11 +314,12 @@ public: virtual ~CollectionItemTypeBase(); void set_keyword(const std::string &); + const std::string &get_keyword() const { return kwd; } void add_suffix(const std::string &); + bool match_name(const std::string &) const; virtual void add_to_loader(Collection::Loader &) const = 0; virtual bool can_create() const = 0; virtual void create_item(Collection &, const std::string &) const = 0; - bool match_name(const std::string &) const; virtual Variant create_future() const = 0; template