11 #ifndef CHANNELPROVIDERLOCAL_H 12 #define CHANNELPROVIDERLOCAL_H 21 #include <pv/pvType.h> 22 #include <pv/pvData.h> 23 #include <pv/pvAccess.h> 24 #include <pv/status.h> 25 #include <pv/serverContext.h> 32 namespace epics {
namespace pvDatabase {
44 epics::pvData::MonitorRequester::shared_pointer
const & monitorRequester,
45 epics::pvData::PVStructurePtr
const & pvRequest);
56 public epics::pvAccess::ChannelProvider,
57 public epics::pvAccess::ChannelFind,
58 public std::tr1::enable_shared_from_this<ChannelProviderLocal>
68 static void initAs(
const std::string& filePath,
const std::string& substitutions=
"");
73 static bool isAsActive();
88 virtual std::string getProviderName();
102 virtual epics::pvAccess::ChannelFind::shared_pointer channelFind(
103 std::string
const &channelName,
104 epics::pvAccess::ChannelFindRequester::shared_pointer
const & channelFindRequester);
114 virtual epics::pvAccess::ChannelFind::shared_pointer channelList(
115 epics::pvAccess::ChannelListRequester::shared_pointer
const & channelListRequester);
125 virtual epics::pvAccess::Channel::shared_pointer createChannel(
126 std::string
const &channelName,
127 epics::pvAccess::ChannelRequester::shared_pointer
const &channelRequester,
142 virtual epics::pvAccess::Channel::shared_pointer createChannel(
143 std::string
const &channelName,
144 epics::pvAccess::ChannelRequester::shared_pointer
const &channelRequester,
146 std::string
const &address);
162 virtual std::tr1::shared_ptr<ChannelProvider> getChannelProvider();
172 friend class ChannelProviderLocalRun;
183 public epics::pvAccess::Channel,
185 public std::tr1::enable_shared_from_this<ChannelLocal>
195 ChannelProviderLocalPtr
const &channelProvider,
196 epics::pvAccess::ChannelRequester::shared_pointer
const & requester,
214 virtual std::string getRequesterName();
220 virtual void message(
221 std::string
const & message,
222 epics::pvData::MessageType messageType);
227 virtual epics::pvAccess::ChannelProvider::shared_pointer getProvider();
232 virtual std::string getRemoteAddress();
237 virtual epics::pvAccess::Channel::ConnectionState getConnectionState();
242 virtual std::string getChannelName();
247 virtual epics::pvAccess::ChannelRequester::shared_pointer getChannelRequester();
252 virtual bool isConnected();
262 virtual void getField(
263 epics::pvAccess::GetFieldRequester::shared_pointer
const &requester,
264 std::string
const & subField);
270 virtual epics::pvAccess::AccessRights getAccessRights(
271 epics::pvData::PVField::shared_pointer
const &pvField);
280 virtual epics::pvAccess::ChannelProcess::shared_pointer createChannelProcess(
281 epics::pvAccess::ChannelProcessRequester::shared_pointer
const &requester,
282 epics::pvData::PVStructurePtr
const &pvRequest);
291 virtual epics::pvAccess::ChannelGet::shared_pointer createChannelGet(
292 epics::pvAccess::ChannelGetRequester::shared_pointer
const &requester,
293 epics::pvData::PVStructurePtr
const &pvRequest);
302 virtual epics::pvAccess::ChannelPut::shared_pointer createChannelPut(
303 epics::pvAccess::ChannelPutRequester::shared_pointer
const &requester,
304 epics::pvData::PVStructurePtr
const &pvRequest);
313 virtual epics::pvAccess::ChannelPutGet::shared_pointer createChannelPutGet(
314 epics::pvAccess::ChannelPutGetRequester::shared_pointer
const &requester,
315 epics::pvData::PVStructurePtr
const &pvRequest);
324 virtual epics::pvAccess::ChannelRPC::shared_pointer createChannelRPC(
325 epics::pvAccess::ChannelRPCRequester::shared_pointer
const &requester,
326 epics::pvData::PVStructurePtr
const &pvRequest);
335 virtual epics::pvData::Monitor::shared_pointer createMonitor(
336 epics::pvData::MonitorRequester::shared_pointer
const &requester,
337 epics::pvData::PVStructurePtr
const &pvRequest);
346 virtual epics::pvAccess::ChannelArray::shared_pointer createChannelArray(
347 epics::pvAccess::ChannelArrayRequester::shared_pointer
const &requester,
348 epics::pvData::PVStructurePtr
const &pvRequest);
352 virtual void printInfo();
358 virtual void printInfo(std::ostream& out);
364 virtual bool canWrite();
370 virtual bool canRead();
374 return shared_from_this();
377 epics::pvAccess::ChannelRequester::shared_pointer requester;
378 ChannelProviderLocalWPtr provider;
380 epics::pvData::Mutex mutex;
383 std::vector<char> toCharArray(
const std::string& s);
384 std::vector<char> getAsGroup(
const PVRecordPtr& pvRecord);
385 std::vector<char> getAsUser(
const epics::pvAccess::ChannelRequester::shared_pointer& requester);
386 std::vector<char> getAsHost(
const epics::pvAccess::ChannelRequester::shared_pointer& requester);
389 std::vector<char> asGroup;
390 std::vector<char> asUser;
391 std::vector<char> asHost;
392 ASMEMBERPVT asMemberPvt;
393 ASCLIENTPVT asClientPvt;
shared_pointer getPtrSelf()
epicsShareFunc ChannelProviderLocalPtr getChannelProviderLocal()
std::tr1::weak_ptr< PVDatabase > PVDatabaseWPtr
std::tr1::shared_ptr< ChannelLocal > ChannelLocalPtr
int getTraceLevel()
get trace level (0,1,2) means (nothing,lifetime,process)
std::tr1::weak_ptr< ChannelLocal > ChannelLocalWPtr
epicsShareFunc epics::pvData::MonitorPtr createMonitorLocal(PVRecordPtr const &pvRecord, epics::pvData::MonitorRequester::shared_pointer const &monitorRequester, epics::pvData::PVStructurePtr const &pvRequest)
std::tr1::shared_ptr< ChannelProviderLocal > ChannelProviderLocalPtr
Channel for accessing a PVRecord.
An interface implemented by code that accesses the record.
std::tr1::shared_ptr< PVRecord > PVRecordPtr
std::tr1::weak_ptr< PVRecord > PVRecordWPtr
ChannelProvider for PVDatabase.
void setTraceLevel(int level)
set trace level (0,1,2) means (nothing,lifetime,process)
virtual void cancel()
ChannelFind method.
std::tr1::weak_ptr< ChannelProviderLocal > ChannelProviderLocalWPtr