product_type* create_object(const key_type& key,const std::string& file)
	{
	    typename product_map::const_iterator pos=map_.find(key);
	    if (pos!=map_.end())
	    {
		return (pos->second)(file);
	    }
	    return on_unknown_type(key);
	}
Exemple #2
0
 product_type* create_object(key_type const& key, Args...args)
 {
     typename product_map::const_iterator pos=map_.find(key);
     if (pos!=map_.end())
     {
         return (pos->second)(args...);
     }
     return 0;
 }
Exemple #3
0
 product_type* create_object(const key_type& key, char const* data, std::size_t size)
 {
     typename product_map::const_iterator pos=map_.find(key);
     if (pos!=map_.end())
     {
         return (pos->second)(data, size);
     }
     return 0;
 }
	bool unregister_product(const key_type& key)
	{
	    return map_.erase(key)==1;
	}
	bool register_product(const key_type& key,product_creator creator)
	{
	    return map_.insert(typename product_map::value_type(key,creator)).second;
	}