pva2pva  1.4.1
 All Classes Functions Variables Pages
channel.h
1 #ifndef CHANNEL_H
2 #define CHANNEL_H
3 
4 #include <pv/pvAccess.h>
5 
6 #include "chancache.h"
7 
8 struct GWChannel : public epics::pvAccess::Channel
9 {
10  POINTER_DEFINITIONS(GWChannel);
11  static size_t num_instances;
12  weak_pointer weakref;
13 
14  const ChannelCacheEntry::shared_pointer entry;
15  const requester_type::weak_pointer requester;
16  const std::string address; // address of client on GW server side
17  const epics::pvAccess::ChannelProvider::weak_pointer server_provder;
18 
19  GWChannel(const ChannelCacheEntry::shared_pointer& e,
20  const epics::pvAccess::ChannelProvider::weak_pointer& srvprov,
21  const requester_type::weak_pointer&,
22  const std::string& addr);
23  virtual ~GWChannel();
24 
25 
26  // for Requester
27  virtual std::string getRequesterName();
28 
29  // for Destroyable
30  virtual void destroy();
31 
32  // for Channel
33  virtual std::tr1::shared_ptr<epics::pvAccess::ChannelProvider> getProvider();
34  virtual std::string getRemoteAddress();
35 
36  virtual ConnectionState getConnectionState();
37  virtual std::string getChannelName();
38  virtual std::tr1::shared_ptr<epics::pvAccess::ChannelRequester> getChannelRequester();
39 
40  virtual void getField(epics::pvAccess::GetFieldRequester::shared_pointer const & requester,
41  std::string const & subField);
42  virtual epics::pvAccess::AccessRights getAccessRights(epics::pvData::PVField::shared_pointer const & pvField);
43  virtual epics::pvAccess::ChannelProcess::shared_pointer createChannelProcess(
44  epics::pvAccess::ChannelProcessRequester::shared_pointer const & channelProcessRequester,
45  epics::pvData::PVStructure::shared_pointer const & pvRequest);
46  virtual epics::pvAccess::ChannelGet::shared_pointer createChannelGet(
47  epics::pvAccess::ChannelGetRequester::shared_pointer const & channelGetRequester,
48  epics::pvData::PVStructure::shared_pointer const & pvRequest);
49  virtual epics::pvAccess::ChannelPut::shared_pointer createChannelPut(
50  epics::pvAccess::ChannelPutRequester::shared_pointer const & channelPutRequester,
51  epics::pvData::PVStructure::shared_pointer const & pvRequest);
52  virtual epics::pvAccess::ChannelPutGet::shared_pointer createChannelPutGet(
53  epics::pvAccess::ChannelPutGetRequester::shared_pointer const & channelPutGetRequester,
54  epics::pvData::PVStructure::shared_pointer const & pvRequest);
55  virtual epics::pvAccess::ChannelRPC::shared_pointer createChannelRPC(
56  epics::pvAccess::ChannelRPCRequester::shared_pointer const & channelRPCRequester,
57  epics::pvData::PVStructure::shared_pointer const & pvRequest);
58  virtual epics::pvData::Monitor::shared_pointer createMonitor(
59  epics::pvData::MonitorRequester::shared_pointer const & monitorRequester,
60  epics::pvData::PVStructure::shared_pointer const & pvRequest);
61  virtual epics::pvAccess::ChannelArray::shared_pointer createChannelArray(
62  epics::pvAccess::ChannelArrayRequester::shared_pointer const & channelArrayRequester,
63  epics::pvData::PVStructure::shared_pointer const & pvRequest);
64 
65  virtual void printInfo(std::ostream& out);
66 
67 };
68 
69 #endif // CHANNEL_H