diff --git a/src/factory/ChannelAccessFactory.cpp b/src/factory/ChannelAccessFactory.cpp index 856cc5b..90af176 100644 --- a/src/factory/ChannelAccessFactory.cpp +++ b/src/factory/ChannelAccessFactory.cpp @@ -171,6 +171,7 @@ void providerRegInit(void*) registerRefCounter("ServerContextImpl", &ServerContextImpl::num_instances); registerRefCounter("ServerChannel", &ServerChannel::num_instances); + registerRefCounter("Transport (ABC)", &Transport::num_instances); registerRefCounter("BlockingTCPTransportCodec", &detail::BlockingTCPTransportCodec::num_instances); registerRefCounter("ChannelProvider (ABC)", &ChannelProvider::num_instances); registerRefCounter("Channel (ABC)", &Channel::num_instances); diff --git a/src/remote/codec.cpp b/src/remote/codec.cpp index d0fc119..3ed6b93 100644 --- a/src/remote/codec.cpp +++ b/src/remote/codec.cpp @@ -58,6 +58,19 @@ struct BreakTransport : TransportSender namespace epics { namespace pvAccess { + +size_t Transport::num_instances; + +Transport::Transport() +{ + REFTRACE_INCREMENT(num_instances); +} + +Transport::~Transport() +{ + REFTRACE_DECREMENT(num_instances); +} + namespace detail { const std::size_t AbstractCodec::MAX_MESSAGE_PROCESS = 100; @@ -994,6 +1007,7 @@ bool AbstractCodec::directDeserialize(ByteBuffer *existingBuffer, char* deserial { return false; } + // // // BlockingAbstractCodec diff --git a/src/remote/pv/remote.h b/src/remote/pv/remote.h index 26f78a4..108439c 100644 --- a/src/remote/pv/remote.h +++ b/src/remote/pv/remote.h @@ -157,11 +157,14 @@ class SecuritySession; /** * Interface defining transport (connection). */ -class Transport : public epics::pvData::DeserializableControl { +class epicsShareClass Transport : public epics::pvData::DeserializableControl { public: POINTER_DEFINITIONS(Transport); - virtual ~Transport() {} + static size_t num_instances; + + Transport(); + virtual ~Transport(); /** * Acquires transport.