31 #include <boost/thread/mutex.hpp> 43 boost::mutex::scoped_lock lock(repositoriesByNameMutex);
44 if (repositoriesByName.find(wireTypeName) == repositoriesByName.end()) {
45 repositoriesByName[wireTypeName] = creater.
create();
47 return repositoriesByName[wireTypeName];
51 return converterRepository<string>();
54 RepositoryCreater::~RepositoryCreater() {
virtual void * create()=0
Factory method to create a new Repository.
Repository< string >::Ptr stringConverterRepository()
boost::shared_ptr< Repository< WireType > > Ptr
An internal factory object to create typed converter repositories.
static map< string, void * > repositoriesByName
static boost::mutex repositoriesByNameMutex
void * converterRepositoryByName(const string &wireTypeName, RepositoryCreater &creater)
Returns a repository for a converters of a certain wire type by a look up based on a name for the wir...