This is Unofficial EPICS BASE Doxygen Site
epics::pvaClient::PvaClientChannelCache Class Reference

Public Member Functions

 PvaClientChannelCache ()
 
 ~PvaClientChannelCache ()
 
PvaClientChannelPtr getChannel (string const &channelName, string const &providerName)
 
void addChannel (PvaClientChannelPtr const &pvaClientChannel)
 
void showCache ()
 
size_t cacheSize ()
 

Detailed Description

Definition at line 29 of file pvaClient.cpp.

Constructor & Destructor Documentation

epics::pvaClient::PvaClientChannelCache::PvaClientChannelCache ( )
inline

Definition at line 32 of file pvaClient.cpp.

32 {}
epics::pvaClient::PvaClientChannelCache::~PvaClientChannelCache ( )
inline

Definition at line 33 of file pvaClient.cpp.

33  {
34  if(PvaClient::getDebug()) cout << "PvaClientChannelCache::~PvaClientChannelCache\n";
35  }
static bool getDebug()
Is debug set?
Definition: pvaClient.cpp:97

Member Function Documentation

void epics::pvaClient::PvaClientChannelCache::addChannel ( PvaClientChannelPtr const &  pvaClientChannel)

Definition at line 56 of file pvaClient.cpp.

57 {
58  Channel::shared_pointer channel = pvaClientChannel->getChannel();
59  string name = channel->getChannelName()
60  + channel->getProvider()->getProviderName();
61  map<string,PvaClientChannelPtr>::iterator iter = pvaClientChannelMap.find(name);
62  if(iter!=pvaClientChannelMap.end()) {
63  throw std::runtime_error("pvaClientChannelCache::addChannel channel already cached");
64  }
65  pvaClientChannelMap.insert(std::pair<string,PvaClientChannelPtr>(
66  name,pvaClientChannel));
67 }
size_t epics::pvaClient::PvaClientChannelCache::cacheSize ( )

Definition at line 83 of file pvaClient.cpp.

84 {
85  return pvaClientChannelMap.size();
86 
87 }
PvaClientChannelPtr epics::pvaClient::PvaClientChannelCache::getChannel ( string const &  channelName,
string const &  providerName 
)

Definition at line 46 of file pvaClient.cpp.

49 {
50  string name = channelName + providerName;
51  map<string,PvaClientChannelPtr>::iterator iter = pvaClientChannelMap.find(name);
52  if(iter!=pvaClientChannelMap.end()) return iter->second;
53  return PvaClientChannelPtr();
54 }
std::tr1::shared_ptr< PvaClientChannel > PvaClientChannelPtr
Definition: pvaClient.h:59
void epics::pvaClient::PvaClientChannelCache::showCache ( )

Definition at line 69 of file pvaClient.cpp.

70 {
71  map<string,PvaClientChannelPtr>::iterator iter;
72  for(iter = pvaClientChannelMap.begin(); iter != pvaClientChannelMap.end(); ++iter)
73  {
74  PvaClientChannelPtr pvaChannel = iter->second;
75  Channel::shared_pointer channel = pvaChannel->getChannel();
76  string channelName = channel->getChannelName();
77  string providerName = channel->getProvider()->getProviderName();
78  cout << "channel " << channelName << " provider " << providerName << endl;
79  pvaChannel->showCache();
80  }
81 }
std::tr1::shared_ptr< PvaClientChannel > PvaClientChannelPtr
Definition: pvaClient.h:59

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