This is Unofficial EPICS BASE Doxygen Site
epics::pvAccess::ConfigurationProviderImpl Class Reference

#include "configuration.h"

+ Inheritance diagram for epics::pvAccess::ConfigurationProviderImpl:
+ Collaboration diagram for epics::pvAccess::ConfigurationProviderImpl:

Public Member Functions

 ConfigurationProviderImpl ()
 
virtual ~ConfigurationProviderImpl ()
 
Configuration::shared_pointer getConfiguration (const std::string &name)
 
void registerConfiguration (const std::string &name, Configuration::shared_pointer const &configuration)
 
- Public Member Functions inherited from epics::pvAccess::ConfigurationProvider
 POINTER_DEFINITIONS (ConfigurationProvider)
 
 ConfigurationProvider ()
 
virtual ~ConfigurationProvider ()
 

Detailed Description

Definition at line 237 of file configuration.h.

Constructor & Destructor Documentation

epics::pvAccess::ConfigurationProviderImpl::ConfigurationProviderImpl ( )
inline

Definition at line 241 of file configuration.h.

241 {}
virtual epics::pvAccess::ConfigurationProviderImpl::~ConfigurationProviderImpl ( )
inlinevirtual

Destructor. Note: Registered configurations will be deleted!!

Definition at line 245 of file configuration.h.

245 {}

Member Function Documentation

Configuration::shared_pointer epics::pvAccess::ConfigurationProviderImpl::getConfiguration ( const std::string &  name)
virtual

Return configuration specified by name.

Parameters
namename of the configuration to return.
Returns
configuration specified by name or NULL if it does not exists.

Implements epics::pvAccess::ConfigurationProvider.

Definition at line 230 of file configuration.cpp.

231 {
232  Lock guard(_mutex);
233  std::map<std::string,Configuration::shared_pointer>::iterator configsIter = _configs.find(name);
234  if(configsIter != _configs.end())
235  {
236  return configsIter->second;
237  }
238  Configuration::shared_pointer env(new ConfigurationEnviron); // default to environment only
239  _configs[name] = env; // ensure that a later attempt to define this config will fail
240  return env;
241 }
A lock for multithreading.
Definition: lock.h:36
void epics::pvAccess::ConfigurationProviderImpl::registerConfiguration ( const std::string &  name,
Configuration::shared_pointer const &  configuration 
)
virtual

Register configuration.

Parameters
namename of the configuration to register.
configurationconfiguration to register.

Implements epics::pvAccess::ConfigurationProvider.

Definition at line 218 of file configuration.cpp.

219 {
220  Lock guard(_mutex);
221  std::map<std::string,Configuration::shared_pointer>::iterator configsIter = _configs.find(name);
222  if(configsIter != _configs.end())
223  {
224  string msg = "configuration with name " + name + " already registered";
226  }
227  _configs[name] = configuration;
228 }
A lock for multithreading.
Definition: lock.h:36
#define THROW_BASE_EXCEPTION(msg)

The documentation for this class was generated from the following files: