return get_item(items, name);
}
-void Collection::gather_items(list<const Variant *> *vars, list<string> *names, const CollectionItemTypeBase &type, bool include_sources) const
+void Collection::gather_items(vector<const Variant *> *vars, list<string> *names, const CollectionItemTypeBase &type, bool include_sources) const
{
for(ItemMap::const_iterator i=items.begin(); i!=items.end(); ++i)
if(type.check_item_type(i->second))
private:
typedef std::map<std::string, Variant> ItemMap;
- typedef std::list<CollectionItemTypeBase *> TypeList;
- typedef std::list<const CollectionSource *> SourceList;
+ typedef std::vector<CollectionItemTypeBase *> TypeList;
+ typedef std::vector<const CollectionSource *> SourceList;
TypeList types;
ItemMap items;
T &extract(const Variant &var) const;
template<typename T>
- std::list<T *> extract_list(const std::list<const Variant *> &vars) const
+ std::list<T *> extract_list(const std::vector<const Variant *> &vars) const
{
std::list<T *> result;
- for(std::list<const Variant *>::const_iterator i=vars.begin(); i!=vars.end(); ++i)
+ for(std::vector<const Variant *>::const_iterator i=vars.begin(); i!=vars.end(); ++i)
result.push_back(&extract<T>(**i));
return result;
}
- void gather_items(std::list<const Variant *> *, std::list<std::string> *, const CollectionItemTypeBase &, bool) const;
+ void gather_items(std::vector<const Variant *> *, std::list<std::string> *, const CollectionItemTypeBase &, bool) const;
template<typename T>
- void gather_items(std::list<const Variant *> *vars, std::list<std::string> *names, const CollectionItemTypeBase *type, bool include_sources) const
+ void gather_items(std::vector<const Variant *> *vars, std::list<std::string> *names, const CollectionItemTypeBase *type, bool include_sources) const
{
if(type || (type = get_type<T>()))
gather_items(vars, names, *type, include_sources);
template<typename T>
std::list<T *> get_list() const
{
- std::list<const Variant *> vars;
+ std::vector<const Variant *> vars;
gather_items<typename RemoveConst<T>::Type>(&vars, 0, 0, false);
return extract_list<T>(vars);
}
if(type)
load_items_from_sources(*type);
- std::list<const Variant *> vars;
+ std::vector<const Variant *> vars;
gather_items<typename RemoveConst<T>::Type>(&vars, 0, type, true);
return extract_list<T>(vars);
}