add reftrack to pvac

This commit is contained in:
Michael Davidsaver
2017-11-22 12:32:38 -06:00
parent 3f51c74ba1
commit 250826ffb9
6 changed files with 109 additions and 11 deletions

View File

@@ -8,6 +8,7 @@
#include <pv/pvData.h>
#include <pv/bitSet.h>
#include <pv/reftrack.h>
#define epicsExportSharedSymbols
#include "pv/logger.h"
@@ -34,9 +35,12 @@ struct RPCer : public pva::ChannelRPCRequester,
pvd::PVStructure::const_shared_pointer args;
static size_t num_instances;
RPCer(pvac::ClientChannel::GetCallback* cb,
const pvd::PVStructure::const_shared_pointer& args) :started(false), cb(cb), args(args) {}
virtual ~RPCer() {cancel();}
const pvd::PVStructure::const_shared_pointer& args) :started(false), cb(cb), args(args)
{REFTRACE_INCREMENT(num_instances);}
virtual ~RPCer() {cancel();REFTRACE_DECREMENT(num_instances);}
void callEvent(Guard& G, pvac::GetEvent::event_t evt = pvac::GetEvent::Fail)
{
@@ -136,6 +140,8 @@ struct RPCer : public pva::ChannelRPCRequester,
}
};
size_t RPCer::num_instances;
}//namespace
namespace pvac {
@@ -159,4 +165,13 @@ ClientChannel::rpc(GetCallback* cb,
return Operation(ret);
}
namespace detail {
void registerRefTrackRPC()
{
epics::registerRefCounter("pvac::RPCer", &RPCer::num_instances);
}
}
}//namespace pvac