diff --git a/pvAccessApp/ca/caChannel.cpp b/pvAccessApp/ca/caChannel.cpp index 7033836..0acdd45 100644 --- a/pvAccessApp/ca/caChannel.cpp +++ b/pvAccessApp/ca/caChannel.cpp @@ -27,8 +27,8 @@ CAChannel::shared_pointer CAChannel::create(ChannelProvider::shared_pointer cons short priority, ChannelRequester::shared_pointer const & channelRequester) { - CAChannel::shared_pointer thisPtr(new CAChannel(channelProvider, channelRequester)); - thisPtr->activate(channelName, priority); + CAChannel::shared_pointer thisPtr(new CAChannel(channelName, channelProvider, channelRequester)); + thisPtr->activate(priority); return thisPtr; } @@ -181,8 +181,10 @@ void CAChannel::disconnected() EXCEPTION_GUARD(channelRequester->channelStateChange(shared_from_this(), Channel::DISCONNECTED)); } -CAChannel::CAChannel(ChannelProvider::shared_pointer const & _channelProvider, +CAChannel::CAChannel(epics::pvData::String const & _channelName, + ChannelProvider::shared_pointer const & _channelProvider, ChannelRequester::shared_pointer const & _channelRequester) : + channelName(_channelName), channelProvider(_channelProvider), channelRequester(_channelRequester), channelID(0), @@ -192,7 +194,7 @@ CAChannel::CAChannel(ChannelProvider::shared_pointer const & _channelProvider, PVACCESS_REFCOUNT_MONITOR_CONSTRUCT(caChannel); } -void CAChannel::activate(epics::pvData::String const & channelName, short priority) +void CAChannel::activate(short priority) { int result = ca_create_channel(channelName.c_str(), ca_connection_handler, @@ -263,7 +265,7 @@ Channel::ConnectionState CAChannel::getConnectionState() epics::pvData::String CAChannel::getChannelName() { - return epics::pvData::String(ca_name(channelID)); + return channelName; } diff --git a/pvAccessApp/ca/caChannel.h b/pvAccessApp/ca/caChannel.h index 46e7215..dccefeb 100644 --- a/pvAccessApp/ca/caChannel.h +++ b/pvAccessApp/ca/caChannel.h @@ -100,11 +100,13 @@ public: private: - CAChannel(ChannelProvider::shared_pointer const & channelProvider, + CAChannel(epics::pvData::String const & channelName, + ChannelProvider::shared_pointer const & channelProvider, ChannelRequester::shared_pointer const & channelRequester); - void activate(epics::pvData::String const & channelName, short priority); + void activate(short priority); - // TODO weak_ptr usage? + epics::pvData::String channelName; + ChannelProvider::shared_pointer channelProvider; ChannelRequester::shared_pointer channelRequester; @@ -158,7 +160,6 @@ private: epics::pvData::PVStructure::shared_pointer const & pvRequest); void activate(); - // TODO weak_ptr usage? CAChannel::shared_pointer channel; ChannelGetRequester::shared_pointer channelGetRequester; chtype getType; @@ -207,7 +208,6 @@ private: epics::pvData::PVStructure::shared_pointer const & pvRequest); void activate(); - // TODO weak_ptr usage? CAChannel::shared_pointer channel; ChannelPutRequester::shared_pointer channelPutRequester; chtype getType; @@ -251,7 +251,6 @@ private: epics::pvData::PVStructure::shared_pointer const & pvRequest); void activate(); - // TODO weak_ptr usage? CAChannel::shared_pointer channel; epics::pvData::MonitorRequester::shared_pointer monitorRequester; chtype getType;