71 public std::tr1::enable_shared_from_this<CAChannelGetField>
76 CAChannelPtr
const &channel,
77 GetFieldRequester::shared_pointer
const &
requester,
78 std::string
const & subField);
83 CAChannelWPtr channel;
84 GetFieldRequester::weak_pointer getFieldRequester;
90 public std::tr1::enable_shared_from_this<CAChannel>
94 static CAChannelPtr create(
95 CAChannelProvider::shared_pointer
const & channelProvider,
96 std::string
const & channelName,
98 ChannelRequester::shared_pointer
const & channelRequester);
102 virtual std::tr1::shared_ptr<ChannelProvider> getProvider();
103 virtual std::string getRemoteAddress();
105 virtual std::string getChannelName();
106 virtual std::tr1::shared_ptr<ChannelRequester> getChannelRequester();
107 virtual void getField(GetFieldRequester::shared_pointer
const &
requester,std::string
const & subField);
108 virtual AccessRights getAccessRights(epics::pvData::PVField::shared_pointer
const & pvField);
109 virtual ChannelGet::shared_pointer createChannelGet(
110 ChannelGetRequester::shared_pointer
const & channelGetRequester,
112 virtual ChannelPut::shared_pointer createChannelPut(
113 ChannelPutRequester::shared_pointer
const & channelPutRequester,
115 virtual Monitor::shared_pointer createMonitor(
116 MonitorRequester::shared_pointer
const & monitorRequester,
118 virtual void printInfo(std::ostream& out);
120 void attachContext();
121 void disconnectChannel();
122 void connect(
bool isConnected);
125 virtual void destroy() {}
126 CAChannel(std::string
const & channelName,
127 CAChannelProvider::shared_pointer
const & channelProvider,
128 ChannelRequester::shared_pointer
const & channelRequester);
130 void addMonitor(CAChannelMonitorPtr
const & monitor);
132 std::string channelName;
134 ChannelRequester::weak_pointer channelRequester;
137 bool channelConnected;
138 ChannelConnectThreadPtr channelConnectThread;
139 NotifyChannelRequesterPtr notifyChannelRequester;
142 std::queue<CAChannelGetFieldPtr> getFieldQueue;
143 std::queue<CAChannelPutPtr> putQueue;
144 std::queue<CAChannelGetPtr> getQueue;
145 std::queue<CAChannelMonitorPtr> monitorQueue;
146 std::vector<CAChannelMonitorWPtr> monitorlist;
152 public std::tr1::enable_shared_from_this<CAChannelGet>
156 static CAChannelGet::shared_pointer create(CAChannel::shared_pointer
const & channel,
157 ChannelGetRequester::shared_pointer
const & channelGetRequester,
162 virtual Channel::shared_pointer getChannel();
163 virtual void cancel();
164 virtual void lastRequest();
165 virtual std::string getRequesterName();
170 virtual void destroy() {}
171 CAChannelGet(CAChannel::shared_pointer
const & _channel,
172 ChannelGetRequester::shared_pointer
const & _channelGetRequester,
175 CAChannelPtr channel;
176 ChannelGetRequester::weak_pointer channelGetRequester;
177 const epics::pvData::PVStructure::shared_pointer pvRequest;
179 GetDoneThreadPtr getDoneThread;
180 NotifyGetRequesterPtr notifyGetRequester;
183 epics::pvData::PVStructure::shared_pointer pvStructure;
184 epics::pvData::BitSet::shared_pointer bitSet;
189 public std::tr1::enable_shared_from_this<CAChannelPut>
194 static CAChannelPut::shared_pointer create(CAChannel::shared_pointer
const & channel,
195 ChannelPutRequester::shared_pointer
const & channelPutRequester,
201 epics::pvData::PVStructure::shared_pointer
const & pvPutStructure,
202 epics::pvData::BitSet::shared_pointer
const & putBitSet
205 virtual Channel::shared_pointer getChannel();
206 virtual void cancel();
207 virtual void lastRequest();
209 virtual std::string getRequesterName();
213 virtual void destroy() {}
214 CAChannelPut(CAChannel::shared_pointer
const & _channel,
215 ChannelPutRequester::shared_pointer
const & _channelPutRequester,
217 CAChannelPtr channel;
218 ChannelPutRequester::weak_pointer channelPutRequester;
219 const epics::pvData::PVStructure::shared_pointer pvRequest;
224 PutDoneThreadPtr putDoneThread;
225 NotifyPutRequesterPtr notifyPutRequester;
228 epics::pvData::PVStructure::shared_pointer pvStructure;
229 epics::pvData::BitSet::shared_pointer bitSet;
237 public std::tr1::enable_shared_from_this<CAChannelMonitor>
242 static CAChannelMonitor::shared_pointer create(CAChannel::shared_pointer
const & channel,
243 MonitorRequester::shared_pointer
const & monitorRequester,
252 virtual void cancel();
253 virtual std::string getRequesterName();
257 virtual void destroy() {}
259 MonitorRequester::shared_pointer
const & _monitorRequester,
261 CAChannelPtr channel;
262 MonitorRequester::weak_pointer monitorRequester;
263 const epics::pvData::PVStructure::shared_pointer pvRequest;
265 MonitorEventThreadPtr monitorEventThread;
267 unsigned long eventMask;
268 NotifyMonitorRequesterPtr notifyMonitorRequester;
272 epics::pvData::PVStructure::shared_pointer pvStructure;
275 CACMonitorQueuePtr monitorQueue;
std::tr1::shared_ptr< detail::SharedPut > put
std::tr1::shared_ptr< CACMonitorQueue > CACMonitorQueuePtr
std::tr1::shared_ptr< MonitorEventThread > MonitorEventThreadPtr
CAChannelGetField(CAChannelPtr const &channel, GetFieldRequester::shared_pointer const &requester, std::string const &subField)
POINTER_DEFINITIONS(CAChannelGetField)
std::tr1::weak_ptr< CAChannelGetField > CAChannelGetFieldWPtr
std::tr1::shared_ptr< NotifyChannelRequester > NotifyChannelRequesterPtr
TODO only here because of the Lockable.
std::tr1::weak_ptr< NotifyGetRequester > NotifyGetRequesterWPtr
std::tr1::shared_ptr< CAChannel > CAChannelPtr
std::tr1::shared_ptr< PutDoneThread > PutDoneThreadPtr
std::tr1::weak_ptr< CAChannelGet > CAChannelGetWPtr
std::tr1::shared_ptr< CAChannelGetField > CAChannelGetFieldPtr
std::tr1::shared_ptr< NotifyGetRequester > NotifyGetRequesterPtr
std::tr1::shared_ptr< NotifyMonitorRequester > NotifyMonitorRequesterPtr
std::tr1::weak_ptr< CAChannelPut > CAChannelPutWPtr
const ChannelProcessRequester::weak_pointer requester
std::tr1::shared_ptr< CAChannelPut > CAChannelPutPtr
std::tr1::weak_ptr< CAChannelMonitor > CAChannelMonitorWPtr
std::tr1::shared_ptr< CAChannelMonitor > CAChannelMonitorPtr
std::tr1::weak_ptr< NotifyPutRequester > NotifyPutRequesterWPtr
std::tr1::weak_ptr< CAChannelProvider > CAChannelProviderWPtr
std::tr1::weak_ptr< CAChannel > CAChannelWPtr
std::tr1::shared_ptr< PVStructure > PVStructurePtr
std::tr1::shared_ptr< NotifyPutRequester > NotifyPutRequesterPtr
std::tr1::shared_ptr< DbdToPv > DbdToPvPtr
std::tr1::shared_ptr< CAChannelGet > CAChannelGetPtr
std::tr1::shared_ptr< MonitorElement > MonitorElementPtr
void callRequester(CAChannelPtr const &caChannel)
std::tr1::shared_ptr< GetDoneThread > GetDoneThreadPtr
std::tr1::shared_ptr< ChannelConnectThread > ChannelConnectThreadPtr