diff --git a/src/remote/pv/codec.h b/src/remote/pv/codec.h index 80adc5a..e6913bd 100644 --- a/src/remote/pv/codec.h +++ b/src/remote/pv/codec.h @@ -493,7 +493,6 @@ private: class BlockingServerTCPTransportCodec : public BlockingTCPTransportCodec, - public ChannelHostingTransport, public TransportSender { public: @@ -535,23 +534,21 @@ public: virtual void changedTransport() OVERRIDE {} - virtual pvAccessID preallocateChannelSID() OVERRIDE FINAL; + pvAccessID preallocateChannelSID(); - virtual void depreallocateChannelSID(pvAccessID /*sid*/) OVERRIDE FINAL { - // noop - } + void depreallocateChannelSID(pvAccessID /*sid*/) {} - virtual void registerChannel( + void registerChannel( pvAccessID sid, - ServerChannel::shared_pointer const & channel) OVERRIDE FINAL; + ServerChannel::shared_pointer const & channel); - virtual void unregisterChannel(pvAccessID sid) OVERRIDE FINAL; + void unregisterChannel(pvAccessID sid); - virtual ServerChannel::shared_pointer getChannel(pvAccessID sid) OVERRIDE FINAL; + ServerChannel::shared_pointer getChannel(pvAccessID sid); void getChannels(std::vector& channels) const; - virtual size_t getChannelCount() const OVERRIDE FINAL; + size_t getChannelCount() const; virtual bool verify(epics::pvData::int32 timeoutMs) OVERRIDE FINAL { diff --git a/src/remote/pv/remote.h b/src/remote/pv/remote.h index 397cd4c..3702980 100644 --- a/src/remote/pv/remote.h +++ b/src/remote/pv/remote.h @@ -467,54 +467,6 @@ public: virtual void destroy() = 0; }; -/** - * Interface defining a transport that hosts server channels. - */ -class ChannelHostingTransport { -public: - POINTER_DEFINITIONS(ChannelHostingTransport); - - virtual ~ChannelHostingTransport() {} - - /** - * Preallocate new channel SID. - * @return new channel server id (SID). - */ - virtual pvAccessID preallocateChannelSID() = 0; - - /** - * De-preallocate new channel SID. - * @param sid preallocated channel SID. - */ - virtual void depreallocateChannelSID(pvAccessID sid) = 0; - - /** - * Register a new channel. - * @param sid preallocated channel SID. - * @param channel channel to register. - */ - virtual void registerChannel(pvAccessID sid, ServerChannel::shared_pointer const & channel) =0; - - /** - * Unregister a new channel (and deallocates its handle). - * @param sid SID - */ - virtual void unregisterChannel(pvAccessID sid) = 0; - - /** - * Get channel by its SID. - * @param sid channel SID - * @return channel with given SID, null otherwise - */ - virtual ServerChannel::shared_pointer getChannel(pvAccessID sid) = 0; - - /** - * Get channel count. - * @return channel count. - */ - virtual size_t getChannelCount() const = 0; -}; - /** * A request that expects an response. * Responses identified by its I/O ID. diff --git a/src/server/responseHandlers.cpp b/src/server/responseHandlers.cpp index 4ff5074..da6bd13 100644 --- a/src/server/responseHandlers.cpp +++ b/src/server/responseHandlers.cpp @@ -790,7 +790,7 @@ void ServerChannelRequesterImpl::channelCreated(const Status& status, Channel::s if (status.isSuccess()) { // NOTE: we do not explicitly check if transport OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); if (!casTransport.get()) THROW_BASE_EXCEPTION("transport is unable to host channels"); @@ -864,7 +864,7 @@ void ServerChannelRequesterImpl::channelStateChange(Channel::shared_pointer cons if(Transport::shared_pointer transport = _transport.lock()) { - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); if (!casTransport) return; @@ -948,7 +948,7 @@ void ServerDestroyChannelHandler::handleResponse(osiSockAddr* responseFrom, transport, version, command, payloadSize, payloadBuffer); // NOTE: we do not explicitly check if transport OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); transport->ensureData(8); @@ -989,7 +989,7 @@ void ServerGetHandler::handleResponse(osiSockAddr* responseFrom, transport, version, command, payloadSize, payloadBuffer); // NOTE: we do not explicitly check if transport is OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); transport->ensureData(2*sizeof(int32)/sizeof(int8)+1); const pvAccessID sid = payloadBuffer->getInt(); @@ -1244,7 +1244,7 @@ void ServerPutHandler::handleResponse(osiSockAddr* responseFrom, // NOTE: we do not explicitly check if transport is OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); transport->ensureData(2*sizeof(int32)/sizeof(int8)+1); const pvAccessID sid = payloadBuffer->getInt(); @@ -1514,7 +1514,7 @@ void ServerPutGetHandler::handleResponse(osiSockAddr* responseFrom, transport, version, command, payloadSize, payloadBuffer); // NOTE: we do not explicitly check if transport is OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); transport->ensureData(2*sizeof(int32)/sizeof(int8)+1); const pvAccessID sid = payloadBuffer->getInt(); @@ -1837,7 +1837,7 @@ void ServerMonitorHandler::handleResponse(osiSockAddr* responseFrom, AbstractServerResponseHandler::handleResponse(responseFrom, transport, version, command, payloadSize, payloadBuffer); - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); assert(!!casTransport); transport->ensureData(2*sizeof(int32)/sizeof(int8)+1); @@ -2132,7 +2132,7 @@ void ServerArrayHandler::handleResponse(osiSockAddr* responseFrom, transport, version, command, payloadSize, payloadBuffer); // NOTE: we do not explicitly check if transport is OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); transport->ensureData(2*sizeof(int32)/sizeof(int8)+1); const pvAccessID sid = payloadBuffer->getInt(); @@ -2464,7 +2464,7 @@ void ServerDestroyRequestHandler::handleResponse(osiSockAddr* responseFrom, transport, version, command, payloadSize, payloadBuffer); // NOTE: we do not explicitly check if transport is OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); transport->ensureData(2*sizeof(int32)/sizeof(int8)); const pvAccessID sid = payloadBuffer->getInt(); @@ -2504,7 +2504,7 @@ void ServerCancelRequestHandler::handleResponse(osiSockAddr* responseFrom, transport, version, command, payloadSize, payloadBuffer); // NOTE: we do not explicitly check if transport is OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); transport->ensureData(2*sizeof(int32)/sizeof(int8)); const pvAccessID sid = payloadBuffer->getInt(); @@ -2549,7 +2549,7 @@ void ServerProcessHandler::handleResponse(osiSockAddr* responseFrom, transport, version, command, payloadSize, payloadBuffer); // NOTE: we do not explicitly check if transport is OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); transport->ensureData(2*sizeof(int32)/sizeof(int8)+1); const pvAccessID sid = payloadBuffer->getInt(); @@ -2729,7 +2729,7 @@ void ServerGetFieldHandler::handleResponse(osiSockAddr* responseFrom, transport, version, command, payloadSize, payloadBuffer); // NOTE: we do not explicitly check if transport is OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); transport->ensureData(2*sizeof(int32)/sizeof(int8)); const pvAccessID sid = payloadBuffer->getInt(); @@ -2809,7 +2809,7 @@ void ServerRPCHandler::handleResponse(osiSockAddr* responseFrom, transport, version, command, payloadSize, payloadBuffer); // NOTE: we do not explicitly check if transport is OK - ChannelHostingTransport::shared_pointer casTransport = dynamic_pointer_cast(transport); + detail::BlockingServerTCPTransportCodec::shared_pointer casTransport = dynamic_pointer_cast(transport); transport->ensureData(2*sizeof(int32)/sizeof(int8)+1); const pvAccessID sid = payloadBuffer->getInt();