This is Unofficial EPICS BASE Doxygen Site
clientContextImpl.h
Go to the documentation of this file.
1 
7 #ifndef CLIENTCONTEXTIMPL_H_
8 #define CLIENTCONTEXTIMPL_H_
9 
10 #ifdef epicsExportSharedSymbols
11 # define clientContextImplEpicsExportSharedSymbols
12 # undef epicsExportSharedSymbols
13 #endif
14 
15 #include <pv/sharedPtr.h>
16 
17 #ifdef clientContextImplEpicsExportSharedSymbols
18 # define epicsExportSharedSymbols
19 # undef clientContextImplEpicsExportSharedSymbols
20 #endif
21 
22 #include <pv/pvAccess.h>
23 #include <pv/remote.h>
25 #include <pv/inetAddressUtil.h>
26 
27 #include <shareLib.h>
28 
29 namespace epics {
30 namespace pvAccess {
31 
32 class BeaconHandler;
33 class ClientContextImpl;
34 
36  public Channel,
37  public TransportSender,
38  public SearchInstance
39 {
40 public:
42 
43  virtual pvAccessID getChannelID() = 0;
44  virtual void connectionCompleted(pvAccessID sid/*, rights*/) = 0;
45  virtual void createChannelFailed() = 0;
46  virtual ClientContextImpl* getContext() = 0;
47  virtual void channelDestroyedOnServer() = 0;
48 
49  virtual pvAccessID getID() =0;
50  virtual pvAccessID getServerChannelID() = 0;
51  virtual void registerResponseRequest(ResponseRequest::shared_pointer const & responseRequest) = 0;
52  virtual void unregisterResponseRequest(pvAccessID ioid) = 0;
53  virtual Transport::shared_pointer checkAndGetTransport() = 0;
54  virtual Transport::shared_pointer checkDestroyedAndGetTransport() = 0;
55  virtual Transport::shared_pointer getTransport() = 0;
56  virtual void transportClosed() =0;
57 
60 
61 };
62 
63 class ClientContextImpl : public Context
64 {
65 public:
67 
72  virtual const Version& getVersion() = 0;
73 
77  virtual void initialize() = 0; // public?
78 
82  virtual void printInfo() {printInfo(std::cout);}
83 
88  virtual void printInfo(std::ostream& out) = 0;
89 
90 
91  virtual ChannelSearchManager::shared_pointer getChannelSearchManager() = 0;
92  virtual void checkChannelName(std::string const & name) = 0;
93 
94  virtual void registerChannel(ClientChannelImpl::shared_pointer const & channel) = 0;
95  virtual void unregisterChannel(ClientChannelImpl::shared_pointer const & channel) = 0;
96 
97  virtual ClientChannelImpl::shared_pointer createChannelInternal(std::string const &name,
98  ChannelRequester::shared_pointer const & requester,
99  short priority,
100  const InetAddrVector& addresses) = 0;
101 
102  virtual ResponseRequest::shared_pointer getResponseRequest(pvAccessID ioid) = 0;
103  virtual pvAccessID registerResponseRequest(ResponseRequest::shared_pointer const & request) = 0;
104  virtual ResponseRequest::shared_pointer unregisterResponseRequest(pvAccessID ioid) = 0;
105 
106 
107  virtual Transport::shared_pointer getTransport(ClientChannelImpl::shared_pointer const & client, osiSockAddr* serverAddress, epics::pvData::int8 minorRevision, epics::pvData::int16 priority) = 0;
108 
109  virtual void newServerDetected() = 0;
110 
111  virtual std::tr1::shared_ptr<BeaconHandler> getBeaconHandler(osiSockAddr* responseFrom) = 0;
112 
113  virtual void destroy() = 0;
114 };
115 
116 ChannelProvider::shared_pointer createClientProvider(const Configuration::shared_pointer& conf);
117 
118 }
119 }
120 
121 #endif /* CLIENTCONTEXTIMPL_H_ */
int8_t int8
Definition: pvType.h:75
virtual void printInfo()
Definition: pvAccess.h:1126
std::string request
epicsInt32 pvAccessID
Definition: pvaDefs.h:18
POINTER_DEFINITIONS(ClientChannelImpl)
virtual void connectionCompleted(pvAccessID sid)=0
virtual pvAccessID getServerChannelID()=0
virtual Transport::shared_pointer getTransport()=0
TODO only here because of the Lockable.
Definition: ntaggregate.cpp:16
#define initialize
Definition: aaiRecord.c:54
virtual ClientContextImpl * getContext()=0
Mark external symbols and entry points for shared libraries.
virtual Transport::shared_pointer checkAndGetTransport()=0
virtual Transport::shared_pointer checkDestroyedAndGetTransport()=0
virtual void registerResponseRequest(ResponseRequest::shared_pointer const &responseRequest)=0
std::vector< osiSockAddr > InetAddrVector
ChannelProvider::shared_pointer createClientProvider(const Configuration::shared_pointer &conf)
Definition: server.h:76
virtual pvAccessID getID()=0
static epics::pvData::Status channelDisconnected
const ChannelProcessRequester::weak_pointer requester
Definition: pvAccess.cpp:68
static epics::pvData::Status channelDestroyed
virtual pvAccessID getChannelID()=0
virtual void unregisterResponseRequest(pvAccessID ioid)=0
void getVersion(epics::pvData::PVDataVersion *ptr)
Definition: pvdVersion.cpp:13
int16_t int16
Definition: pvType.h:79
virtual void channelDestroyedOnServer()=0