SharedPV move internal names under detail::

This commit is contained in:
Michael Davidsaver
2018-10-18 16:53:38 -07:00
parent 0a5f8b44db
commit 729f16f94e
7 changed files with 37 additions and 27 deletions

View File

@ -226,9 +226,9 @@ void providerRegInit(void*)
registerRefCounter("ResponseHandler (ABC)", &ResponseHandler::num_instances);
registerRefCounter("MonitorFIFO", &MonitorFIFO::num_instances);
pvas::registerRefTrackServer();
registerRefCounter("pvas::SharedChannel", &pvas::SharedChannel::num_instances);
registerRefCounter("pvas::SharedPut", &pvas::SharedPut::num_instances);
registerRefCounter("pvas::SharedRPC", &pvas::SharedRPC::num_instances);
registerRefCounter("pvas::SharedChannel", &pvas::detail::SharedChannel::num_instances);
registerRefCounter("pvas::SharedPut", &pvas::detail::SharedPut::num_instances);
registerRefCounter("pvas::SharedRPC", &pvas::detail::SharedRPC::num_instances);
registerRefCounter("pvas::SharedPV", &pvas::SharedPV::num_instances);
}

View File

@ -33,10 +33,12 @@ void providerRegInit(void*);
namespace pvas {
namespace detail {
struct SharedChannel;
struct SharedMonitorFIFO;
struct SharedPut;
struct SharedRPC;
}
struct Operation;
@ -74,10 +76,10 @@ struct Operation;
class epicsShareClass SharedPV
: public pvas::StaticProvider::ChannelBuilder
{
friend struct SharedChannel;
friend struct SharedMonitorFIFO;
friend struct SharedPut;
friend struct SharedRPC;
friend struct detail::SharedChannel;
friend struct detail::SharedMonitorFIFO;
friend struct detail::SharedPut;
friend struct detail::SharedRPC;
public:
POINTER_DEFINITIONS(SharedPV);
struct epicsShareClass Config {
@ -188,11 +190,11 @@ private:
std::tr1::shared_ptr<SharedPV::Handler> handler;
typedef std::list<SharedPut*> puts_t;
typedef std::list<SharedRPC*> rpcs_t;
typedef std::list<SharedMonitorFIFO*> monitors_t;
typedef std::list<detail::SharedPut*> puts_t;
typedef std::list<detail::SharedRPC*> rpcs_t;
typedef std::list<detail::SharedMonitorFIFO*> monitors_t;
typedef std::list<std::tr1::weak_ptr<epics::pvAccess::GetFieldRequester> > getfields_t;
typedef std::list<SharedChannel*> channels_t;
typedef std::list<detail::SharedChannel*> channels_t;
std::tr1::shared_ptr<const epics::pvData::Structure> type;
@ -226,8 +228,8 @@ struct epicsShareClass Operation {
private:
std::tr1::shared_ptr<Impl> impl;
friend struct SharedPut;
friend struct SharedRPC;
friend struct detail::SharedPut;
friend struct detail::SharedRPC;
explicit Operation(const std::tr1::shared_ptr<Impl> impl);
public:
Operation() {} //!< create empty op for later assignment

View File

@ -23,6 +23,7 @@
#include "sharedstateimpl.h"
namespace pvas {
namespace detail {
size_t SharedChannel::num_instances;
@ -268,6 +269,8 @@ SharedMonitorFIFO::~SharedMonitorFIFO()
channel->owner->monitors.remove(this);
}
} // namespace detail
Operation::Operation(const std::tr1::shared_ptr<Impl> impl)
:impl(impl)
{}

View File

@ -26,9 +26,9 @@
namespace {
struct PutOP : public pvas::Operation::Impl
{
const std::tr1::shared_ptr<pvas::SharedPut> op;
const std::tr1::shared_ptr<pvas::detail::SharedPut> op;
PutOP(const std::tr1::shared_ptr<pvas::SharedPut>& op,
PutOP(const std::tr1::shared_ptr<pvas::detail::SharedPut>& op,
const pvd::PVStructure::const_shared_pointer& pvRequest,
const pvd::PVStructure::const_shared_pointer& value,
const pvd::BitSet& changed)
@ -69,6 +69,7 @@ struct PutOP : public pvas::Operation::Impl
namespace pvas {
namespace detail {
size_t SharedPut::num_instances;
@ -178,4 +179,4 @@ void SharedPut::get()
req->getDone(sts, shared_from_this(), current, changed);
}
} // namespace pvas
}} // namespace pvas::detail

View File

@ -106,13 +106,13 @@ bool SharedPV::isOpen() const
namespace {
struct PutInfo { // oh to be able to use std::tuple ...
std::tr1::shared_ptr<SharedPut> put;
std::tr1::shared_ptr<detail::SharedPut> put;
pvd::StructureConstPtr type;
pvd::Status status;
PutInfo(const std::tr1::shared_ptr<SharedPut>& put, const pvd::StructureConstPtr& type, const pvd::Status& status)
PutInfo(const std::tr1::shared_ptr<detail::SharedPut>& put, const pvd::StructureConstPtr& type, const pvd::Status& status)
:put(put), type(type), status(status)
{}
PutInfo(const std::tr1::shared_ptr<SharedPut>& put, const pvd::StructureConstPtr& type, const std::string& message)
PutInfo(const std::tr1::shared_ptr<detail::SharedPut>& put, const pvd::StructureConstPtr& type, const std::string& message)
:put(put), type(type)
{
if(!message.empty())
@ -124,7 +124,7 @@ struct PutInfo { // oh to be able to use std::tuple ...
void SharedPV::open(const pvd::PVStructure &value, const epics::pvData::BitSet& valid)
{
typedef std::vector<PutInfo> xputs_t;
typedef std::vector<std::tr1::shared_ptr<SharedRPC> > xrpcs_t;
typedef std::vector<std::tr1::shared_ptr<detail::SharedRPC> > xrpcs_t;
typedef std::vector<std::tr1::shared_ptr<pva::MonitorFIFO> > xmonitors_t;
typedef std::vector<std::tr1::shared_ptr<pva::GetFieldRequester> > xgetfields_t;
@ -189,7 +189,7 @@ void SharedPV::open(const pvd::PVStructure &value, const epics::pvData::BitSet&
}
// unlock for callbacks
FOR_EACH(xputs_t::iterator, it, end, p_put) {
SharedPut::requester_type::shared_pointer requester(it->put->requester.lock());
detail::SharedPut::requester_type::shared_pointer requester(it->put->requester.lock());
if(requester) {
if(it->status.getType()==pvd::Status::STATUSTYPE_WARNING)
requester->message(it->status.getMessage(), pvd::warningMessage);
@ -197,7 +197,7 @@ void SharedPV::open(const pvd::PVStructure &value, const epics::pvData::BitSet&
}
}
FOR_EACH(xrpcs_t::iterator, it, end, p_rpc) {
SharedRPC::requester_type::shared_pointer requester((*it)->requester.lock());
detail::SharedRPC::requester_type::shared_pointer requester((*it)->requester.lock());
if(requester) requester->channelRPCConnect(pvd::Status(), *it);
}
FOR_EACH(xmonitors_t::iterator, it, end, p_monitor) {
@ -225,7 +225,7 @@ void SharedPV::close(bool destroy)
typedef std::vector<std::tr1::shared_ptr<pva::ChannelPutRequester> > xputs_t;
typedef std::vector<std::tr1::shared_ptr<pva::ChannelRPCRequester> > xrpcs_t;
typedef std::vector<std::tr1::shared_ptr<pva::MonitorFIFO> > xmonitors_t;
typedef std::vector<std::tr1::shared_ptr<SharedChannel> > xchannels_t;
typedef std::vector<std::tr1::shared_ptr<detail::SharedChannel> > xchannels_t;
xputs_t p_put;
xrpcs_t p_rpc;
@ -357,7 +357,7 @@ SharedPV::connect(const std::tr1::shared_ptr<epics::pvAccess::ChannelProvider> &
const std::tr1::shared_ptr<pva::ChannelRequester>& requester)
{
shared_pointer self(internal_self);
std::tr1::shared_ptr<SharedChannel> ret(new SharedChannel(self, provider, channelName, requester));
std::tr1::shared_ptr<detail::SharedChannel> ret(new detail::SharedChannel(self, provider, channelName, requester));
return ret;
}

View File

@ -25,9 +25,9 @@
namespace {
struct RPCOP : public pvas::Operation::Impl
{
const std::tr1::shared_ptr<pvas::SharedRPC> op;
const std::tr1::shared_ptr<pvas::detail::SharedRPC> op;
RPCOP(const std::tr1::shared_ptr<pvas::SharedRPC>& op,
RPCOP(const std::tr1::shared_ptr<pvas::detail::SharedRPC>& op,
const pvd::PVStructure::const_shared_pointer& pvRequest,
const pvd::PVStructure::const_shared_pointer& value)
:Impl(pvRequest, value, pvd::BitSet().set(0))
@ -75,6 +75,7 @@ struct RPCOP : public pvas::Operation::Impl
}
namespace pvas {
namespace detail {
size_t SharedRPC::num_instances;
@ -137,4 +138,4 @@ void SharedRPC::request(epics::pvData::PVStructure::shared_pointer const & pvArg
}
} // namespace pvas
}} // namespace pvas::detail

View File

@ -20,6 +20,7 @@ typedef epicsGuard<epicsMutex> Guard;
typedef epicsGuardRelease<epicsMutex> UnGuard;
namespace pvas {
namespace detail {
struct SharedChannel : public pva::Channel,
public std::tr1::enable_shared_from_this<SharedChannel>
@ -124,6 +125,8 @@ struct SharedRPC : public pva::ChannelRPC,
virtual void request(epics::pvData::PVStructure::shared_pointer const & pvArgument) OVERRIDE FINAL;
};
} // namespace detail
struct Operation::Impl
{
static size_t num_instances;