This is Unofficial EPICS BASE Doxygen Site
pvas::StaticProvider::Impl Struct Reference
+ Inheritance diagram for pvas::StaticProvider::Impl:
+ Collaboration diagram for pvas::StaticProvider::Impl:

Public Types

typedef StaticProvider::builders_t builders_t
 

Public Member Functions

 POINTER_DEFINITIONS (Impl)
 
 Impl (const std::string &name)
 
virtual ~Impl ()
 
virtual void destroy () OVERRIDE FINAL
 
virtual std::string getProviderName () OVERRIDE FINAL
 
virtual pva::ChannelFind::shared_pointer channelFind (std::string const &name, pva::ChannelFindRequester::shared_pointer const &requester) OVERRIDE FINAL
 
virtual pva::ChannelFind::shared_pointer channelList (pva::ChannelListRequester::shared_pointer const &requester) OVERRIDE FINAL
 
virtual pva::Channel::shared_pointer createChannel (std::string const &name, pva::ChannelRequester::shared_pointer const &requester, short priority, std::string const &address) OVERRIDE FINAL
 
- Public Member Functions inherited from epics::pvAccess::ChannelProvider
 POINTER_DEFINITIONS (ChannelProvider)
 
 ChannelProvider ()
 
virtual ~ChannelProvider ()
 
virtual ChannelFind::shared_pointer channelFind (std::string const &name, ChannelFindRequester::shared_pointer const &requester)=0
 
virtual ChannelFind::shared_pointer channelList (ChannelListRequester::shared_pointer const &requester)
 
virtual Channel::shared_pointer createChannel (std::string const &name, ChannelRequester::shared_pointer const &requester=DefaultChannelRequester::build(), short priority=PRIORITY_DEFAULT)
 
virtual Channel::shared_pointer createChannel (std::string const &name, ChannelRequester::shared_pointer const &requester, short priority, std::string const &address)=0
 
- Public Member Functions inherited from epics::pvAccess::Destroyable
 POINTER_DEFINITIONS (Destroyable)
 

Public Attributes

const std::string name
 
pva::ChannelFind::shared_pointer finder
 
std::tr1::weak_ptr< Implinternal_self
 
std::tr1::weak_ptr< Implexternal_self
 
epicsMutex mutex
 
builders_t builders
 

Static Public Attributes

static size_t num_instances
 
- Static Public Attributes inherited from epics::pvAccess::ChannelProvider
static const short PRIORITY_MIN = 0
 
static const short PRIORITY_MAX = 99
 
static const short PRIORITY_DEFAULT = PRIORITY_MIN
 
static const short PRIORITY_LINKS_DB = PRIORITY_MAX
 
static const short PRIORITY_ARCHIVE = (PRIORITY_MAX + PRIORITY_MIN) / 2
 
static const short PRIORITY_OPI = PRIORITY_MIN
 
static size_t num_instances
 

Additional Inherited Members

- Protected Member Functions inherited from epics::pvAccess::Destroyable
virtual ~Destroyable ()
 

Detailed Description

Definition at line 31 of file server.cpp.

Member Typedef Documentation

typedef StaticProvider::builders_t pvas::StaticProvider::Impl::builders_t

Definition at line 43 of file server.cpp.

Constructor & Destructor Documentation

pvas::StaticProvider::Impl::Impl ( const std::string &  name)
inline

Definition at line 46 of file server.cpp.

47  :name(name)
48  {
49  REFTRACE_INCREMENT(num_instances);
50  }
static size_t num_instances
Definition: server.cpp:35
const std::string name
Definition: server.cpp:37
virtual pvas::StaticProvider::Impl::~Impl ( )
inlinevirtual

Definition at line 51 of file server.cpp.

51  {
52  REFTRACE_DECREMENT(num_instances);
53  }
static size_t num_instances
Definition: server.cpp:35

Member Function Documentation

virtual pva::ChannelFind::shared_pointer pvas::StaticProvider::Impl::channelFind ( std::string const &  name,
pva::ChannelFindRequester::shared_pointer const &  requester 
)
inlinevirtual

Definition at line 58 of file server.cpp.

60  {
61  bool found;
62 
63  {
64  Guard G(mutex);
65 
66  found = builders.find(name)!=builders.end();
67  }
68  requester->channelFindResult(pvd::Status(), finder, found);
69  return finder;
70  }
const ChannelProcessRequester::weak_pointer requester
Definition: pvAccess.cpp:68
pva::ChannelFind::shared_pointer finder
Definition: server.cpp:38
const std::string name
Definition: server.cpp:37
virtual pva::ChannelFind::shared_pointer pvas::StaticProvider::Impl::channelList ( pva::ChannelListRequester::shared_pointer const &  requester)
inlinevirtual

Definition at line 71 of file server.cpp.

72  {
74  {
75  Guard G(mutex);
76  names.reserve(builders.size());
77  for(builders_t::const_iterator it(builders.begin()), end(builders.end()); it!=end; ++it) {
78  names.push_back(it->first);
79  }
80  }
81  requester->channelListResult(pvd::Status(), finder, pvd::freeze(names), false);
82  return finder;
83  }
A holder for a contiguous piece of memory.
Definition: sharedVector.h:27
const_iterator end() const
Definition: server.cpp:180
void push_back(param_type v)
Definition: sharedVector.h:602
const ChannelProcessRequester::weak_pointer requester
Definition: pvAccess.cpp:68
pva::ChannelFind::shared_pointer finder
Definition: server.cpp:38
void reserve(size_t i)
Set array capacity.
Definition: sharedVector.h:428
virtual pva::Channel::shared_pointer pvas::StaticProvider::Impl::createChannel ( std::string const &  name,
pva::ChannelRequester::shared_pointer const &  requester,
short  priority,
std::string const &  address 
)
inlinevirtual

Definition at line 84 of file server.cpp.

87  {
88  pva::Channel::shared_pointer ret;
89  pvd::Status sts;
90 
91  builders_t::mapped_type builder;
92  {
93  Guard G(mutex);
94  builders_t::const_iterator it(builders.find(name));
95  if(it!=builders.end()) {
96  UnGuard U(G);
97  builder = it->second;
98  }
99  }
100  if(builder)
101  ret = builder->connect(Impl::shared_pointer(internal_self), name, requester);
102 
103  if(!ret) {
104  sts = pvd::Status::error("No such channel");
105  }
106 
107  requester->channelCreated(sts, ret);
108  return ret;
109  }
std::tr1::weak_ptr< Impl > internal_self
Definition: server.cpp:39
static Status error(const std::string &m)
Definition: status.h:50
const ChannelProcessRequester::weak_pointer requester
Definition: pvAccess.cpp:68
const std::string name
Definition: server.cpp:37
virtual void pvas::StaticProvider::Impl::destroy ( )
inlinevirtual

Destroy this instance.

Implements epics::pvAccess::Destroyable.

Definition at line 55 of file server.cpp.

55 {}
virtual std::string pvas::StaticProvider::Impl::getProviderName ( )
inlinevirtual

Get the provider name.

Returns
The name.

Implements epics::pvAccess::ChannelProvider.

Definition at line 57 of file server.cpp.

57 { return name; }
const std::string name
Definition: server.cpp:37
pvas::StaticProvider::Impl::POINTER_DEFINITIONS ( Impl  )

Member Data Documentation

builders_t pvas::StaticProvider::Impl::builders

Definition at line 44 of file server.cpp.

std::tr1::weak_ptr<Impl> pvas::StaticProvider::Impl::external_self

Definition at line 39 of file server.cpp.

pva::ChannelFind::shared_pointer pvas::StaticProvider::Impl::finder

Definition at line 38 of file server.cpp.

std::tr1::weak_ptr<Impl> pvas::StaticProvider::Impl::internal_self

Definition at line 39 of file server.cpp.

epicsMutex pvas::StaticProvider::Impl::mutex
mutable

Definition at line 41 of file server.cpp.

const std::string pvas::StaticProvider::Impl::name

Definition at line 37 of file server.cpp.

size_t pvas::StaticProvider::Impl::num_instances
static

Definition at line 35 of file server.cpp.


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