added disconnect message to pvget/eget while monitoring

This commit is contained in:
Matej Sekoranja
2014-07-21 11:29:22 +02:00
parent ac707e63cd
commit 3050323193
4 changed files with 24 additions and 7 deletions
+4 -1
View File
@@ -1804,7 +1804,10 @@ int main (int argc, char *argv[])
if (monitor)
{
shared_ptr<MonitorRequesterImpl> monitorRequesterImpl(new MonitorRequesterImpl(channel->getChannelName()));
shared_ptr<ChannelRequesterImpl> channelRequesterImpl = dynamic_pointer_cast<ChannelRequesterImpl>(channel->getChannelRequester());
channelRequesterImpl->showDisconnectMessage();
shared_ptr<MonitorRequesterImpl> monitorRequesterImpl(new MonitorRequesterImpl(channel->getChannelName()));
channel->createMonitor(monitorRequesterImpl, pvRequest);
}
else
+4 -1
View File
@@ -527,7 +527,10 @@ int main (int argc, char *argv[])
}
else
{
shared_ptr<MonitorRequesterImpl> monitorRequesterImpl(new MonitorRequesterImpl(channel->getChannelName()));
shared_ptr<ChannelRequesterImpl> channelRequesterImpl = dynamic_pointer_cast<ChannelRequesterImpl>(channel->getChannelRequester());
channelRequesterImpl->showDisconnectMessage();
shared_ptr<MonitorRequesterImpl> monitorRequesterImpl(new MonitorRequesterImpl(channel->getChannelName()));
Monitor::shared_pointer monitorGet = channel->createMonitor(monitorRequesterImpl, pvRequest);
allOK &= true;
}
+12 -3
View File
@@ -212,7 +212,7 @@ char *url_encode(const char *str) {
ChannelRequesterImpl::ChannelRequesterImpl(bool _printOnlyErrors) :
printOnlyErrors(_printOnlyErrors)
printOnlyErrors(_printOnlyErrors), showDisconnectMsg(false)
{
}
@@ -243,13 +243,18 @@ void ChannelRequesterImpl::channelCreated(const epics::pvData::Status& status, C
}
}
void ChannelRequesterImpl::channelStateChange(Channel::shared_pointer const & /*channel*/, Channel::ConnectionState connectionState)
void ChannelRequesterImpl::channelStateChange(Channel::shared_pointer const & channel, Channel::ConnectionState connectionState)
{
if (connectionState == Channel::CONNECTED)
{
m_event.signal();
}
/*
else if (showDisconnectMsg && connectionState == Channel::DISCONNECTED)
{
std::cerr << std::setw(30) << std::left << channel->getChannelName()
<< ' ' << "*** disconnected" << std::endl;
}
/*
else if (connectionState != Channel::DESTROYED)
{
std::cerr << "[" << channel->getChannelName() << "] channel state change: " << Channel::ConnectionStateNames[connectionState] << std::endl;
@@ -262,6 +267,10 @@ bool ChannelRequesterImpl::waitUntilConnected(double timeOut)
return m_event.wait(timeOut);
}
void ChannelRequesterImpl::showDisconnectMessage(bool show)
{
showDisconnectMsg = show;
}
GetFieldRequesterImpl::GetFieldRequesterImpl(epics::pvAccess::Channel::shared_pointer channel) :
+4 -2
View File
@@ -53,7 +53,8 @@ class ChannelRequesterImpl :
private:
epics::pvData::Event m_event;
bool printOnlyErrors;
bool showDisconnectMsg;
public:
ChannelRequesterImpl(bool printOnlyErrors = false);
@@ -65,6 +66,7 @@ class ChannelRequesterImpl :
virtual void channelStateChange(epics::pvAccess::Channel::shared_pointer const & channel, epics::pvAccess::Channel::ConnectionState connectionState);
bool waitUntilConnected(double timeOut);
void showDisconnectMessage(bool show = true);
};
class GetFieldRequesterImpl :
@@ -98,4 +100,4 @@ struct dump_stack_only_on_debug
dump_stack_only_on_debug(const epics::pvData::Status &s) : status(s) {}
};
std::ostream& operator<<(std::ostream& os, const dump_stack_only_on_debug& d);
std::ostream& operator<<(std::ostream& os, const dump_stack_only_on_debug& d);