This is Unofficial EPICS BASE Doxygen Site
epics::pvCopy::PVPluginRegistry Class Reference

A registry for filter plugins for PVCopy. More...

#include "pvPlugin.h"

Static Public Member Functions

static void registerPlugin (const std::string &name, const PVPluginPtr &pvPlugin)
 
static PVPluginPtr find (const std::string &name)
 

Detailed Description

A registry for filter plugins for PVCopy.

Definition at line 91 of file pvPlugin.h.

Member Function Documentation

PVPluginPtr epics::pvCopy::PVPluginRegistry::find ( const std::string &  name)
static

Find a plugin.

Parameters
nameThe name that appears in [name=value] of a field request option.
Returns
The plugin implementation or null if no pluging by that name has been registered.

Definition at line 32 of file pvPlugin.cpp.

33 {
34  Lock xx(mutex);
35  PVPluginMap::iterator iter = pluginMap.find(name);
36  if(iter!=pluginMap.end()) return (*iter).second;
37  return PVPluginPtr();
38 }
std::tr1::shared_ptr< PVPlugin > PVPluginPtr
Definition: pvPlugin.h:28
A lock for multithreading.
Definition: lock.h:36
void epics::pvCopy::PVPluginRegistry::registerPlugin ( const std::string &  name,
const PVPluginPtr pvPlugin 
)
static

Register a plugin.

Parameters
nameThe name that appears in [name=value] of a field request option.
pvPluginThe implementation for the plugin.

Definition at line 24 of file pvPlugin.cpp.

25 {
26  Lock xx(mutex);
27  PVPluginMap::iterator iter = pluginMap.find(name);
28  if(iter!=pluginMap.end()) throw std::logic_error("plugin already registered");
29  pluginMap.insert(PVPluginMap::value_type(name,pvPlugin));
30 }
A lock for multithreading.
Definition: lock.h:36

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