This is Unofficial EPICS BASE Doxygen Site
caProviderPvt.h
Go to the documentation of this file.
1 
12 #ifndef CAPROVIDERPVT_H
13 #define CAPROVIDERPVT_H
14 
15 #include <cadef.h>
16 
17 #include <pv/caProvider.h>
18 #include <pv/pvAccess.h>
19 
20 
21 namespace epics {
22 namespace pvAccess {
23 namespace ca {
24 
25 #define DEBUG_LEVEL 0
26 
27 class ChannelConnectThread;
28 typedef std::tr1::shared_ptr<ChannelConnectThread> ChannelConnectThreadPtr;
29 
30 class MonitorEventThread;
31 typedef std::tr1::shared_ptr<MonitorEventThread> MonitorEventThreadPtr;
32 
33 class GetDoneThread;
34 typedef std::tr1::shared_ptr<GetDoneThread> GetDoneThreadPtr;
35 
36 class PutDoneThread;
37 typedef std::tr1::shared_ptr<PutDoneThread> PutDoneThreadPtr;
38 
39 class CAChannel;
40 typedef std::tr1::shared_ptr<CAChannel> CAChannelPtr;
41 typedef std::tr1::weak_ptr<CAChannel> CAChannelWPtr;
42 
44 typedef std::tr1::shared_ptr<CAChannelProvider> CAChannelProviderPtr;
45 typedef std::tr1::weak_ptr<CAChannelProvider> CAChannelProviderWPtr;
46 
48  public ChannelProvider,
49  public std::tr1::enable_shared_from_this<CAChannelProvider>
50 {
51 public:
54  CAChannelProvider(const std::tr1::shared_ptr<Configuration>&);
55  virtual ~CAChannelProvider();
56 
57  /* --------------- epics::pvAccess::ChannelProvider --------------- */
58 
59  virtual std::string getProviderName();
60 
61  virtual ChannelFind::shared_pointer channelFind(
62  std::string const & channelName,
63  ChannelFindRequester::shared_pointer const & channelFindRequester);
64 
65  virtual ChannelFind::shared_pointer channelList(
66  ChannelListRequester::shared_pointer const & channelListRequester);
67 
68  virtual Channel::shared_pointer createChannel(
69  std::string const & channelName,
70  ChannelRequester::shared_pointer const & channelRequester,
71  short priority);
72 
73  virtual Channel::shared_pointer createChannel(
74  std::string const & channelName,
75  ChannelRequester::shared_pointer const & channelRequester,
76  short priority,
77  std::string const & address);
78 
79  virtual void configure(epics::pvData::PVStructure::shared_pointer configuration);
80  virtual void flush();
81  virtual void poll();
82 
83  void attachContext();
84  void addChannel(const CAChannelPtr & channel);
85 private:
86 
87  virtual void destroy() EPICS_DEPRECATED {}
88  void initialize();
89  ca_client_context* current_context;
90  epics::pvData::Mutex channelListMutex;
91  std::vector<CAChannelWPtr> caChannelList;
92  ChannelConnectThreadPtr channelConnectThread;
93  MonitorEventThreadPtr monitorEventThread;
94  GetDoneThreadPtr getDoneThread;
95  PutDoneThreadPtr putDoneThread;
96 };
97 
98 }}}
99 
100 #endif /* CAPROVIDERPVT_H */
void addChannel(const CAChannelPtr &channel)
Definition: caProvider.cpp:147
virtual ChannelFind::shared_pointer channelList(ChannelListRequester::shared_pointer const &channelListRequester)
Definition: caProvider.cpp:112
std::tr1::shared_ptr< MonitorEventThread > MonitorEventThreadPtr
Definition: caChannel.h:42
virtual ChannelFind::shared_pointer channelFind(std::string const &channelName, ChannelFindRequester::shared_pointer const &channelFindRequester)
Definition: caProvider.cpp:96
TODO only here because of the Lockable.
Definition: ntaggregate.cpp:16
std::tr1::shared_ptr< CAChannel > CAChannelPtr
Definition: caChannel.h:31
std::tr1::shared_ptr< PutDoneThread > PutDoneThreadPtr
Definition: caChannel.h:54
std::tr1::shared_ptr< CAChannelProvider > CAChannelProviderPtr
Definition: caProviderPvt.h:43
virtual void configure(epics::pvData::PVStructure::shared_pointer configuration)
Definition: caProvider.cpp:164
virtual Channel::shared_pointer createChannel(std::string const &channelName, ChannelRequester::shared_pointer const &channelRequester, short priority)
Definition: caProvider.cpp:125
std::tr1::weak_ptr< CAChannelProvider > CAChannelProviderWPtr
Definition: caProviderPvt.h:45
std::tr1::weak_ptr< CAChannel > CAChannelWPtr
Definition: caChannel.h:33
::epics::pvAccess::Destroyable Destroyable EPICS_DEPRECATED
Definition: destroyable.h:61
epicsMutex Mutex
Definition: lock.h:28
virtual std::string getProviderName()
Definition: caProvider.cpp:91
std::tr1::shared_ptr< GetDoneThread > GetDoneThreadPtr
Definition: caChannel.h:48
std::tr1::shared_ptr< ChannelConnectThread > ChannelConnectThreadPtr
Definition: caChannel.h:34