The following changes were made:

1) pvaClientChannel no longer issues an error message on disconnect.
   This should never have been done.
   When pvaClient is used within a database, it caused error mesaage when database exits.
2) pvaClientGet,Monitor,Process,Put,PutGet now let pvaClientChannel handle getRequesterName and message.
   This leads to better error messages.
This commit is contained in:
mrkraimer
2021-03-15 06:48:38 -04:00
parent 3fb934a30b
commit 6eb977ae66
6 changed files with 10 additions and 35 deletions

View File

@ -198,9 +198,6 @@ void PvaClientChannel::channelStateChange(
if(connectState==connectActive) waitingForConnect = true;
if(connectionState!=Channel::CONNECTED) {
Lock xx(mutex);
string mess(channelName +
" connection state " + Channel::ConnectionStateNames[connectionState]);
message(mess,errorMessage);
connectState = notConnected;
} else {
Lock xx(mutex);

View File

@ -134,19 +134,14 @@ void PvaClientGet::checkConnectState()
}
}
// from ChannelGetRequester
string PvaClientGet::getRequesterName()
{
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) return string("PvaClientGet::getRequesterName PvaClient isDestroyed");
return yyy->getRequesterName();
return pvaClientChannel->getRequesterName();
}
void PvaClientGet::message(string const & message,MessageType messageType)
{
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) return;
yyy->message(message, messageType);
pvaClientChannel->message(message,messageType);
}
void PvaClientGet::channelGetConnect(

View File

@ -201,16 +201,12 @@ void PvaClientMonitor::checkMonitorState()
string PvaClientMonitor::getRequesterName()
{
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) return string("PvaClientMonitor::getRequesterName() PvaClient isDestroyed");
return yyy->getRequesterName();
return pvaClientChannel->getRequesterName();
}
void PvaClientMonitor::message(string const & message,MessageType messageType)
{
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) return;
yyy->message(message, messageType);
pvaClientChannel->message(message,messageType);
}
void PvaClientMonitor::monitorConnect(

View File

@ -111,19 +111,14 @@ PvaClientProcess::~PvaClientProcess()
}
}
// from ChannelProcessRequester
string PvaClientProcess::getRequesterName()
{
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) throw std::runtime_error("pvaClient was destroyed");
return yyy->getRequesterName();
return pvaClientChannel->getRequesterName();
}
void PvaClientProcess::message(string const & message,MessageType messageType)
{
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) throw std::runtime_error("pvaClient was destroyed");
yyy->message(message, messageType);
pvaClientChannel->message(message,messageType);
}
void PvaClientProcess::channelProcessConnect(

View File

@ -138,16 +138,12 @@ void PvaClientPut::checkConnectState()
string PvaClientPut::getRequesterName()
{
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) return string("PvaClientPut::getRequesterName() PvaClient isDestroyed");
return yyy->getRequesterName();
return pvaClientChannel->getRequesterName();
}
void PvaClientPut::message(string const & message,MessageType messageType)
{
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) return;
yyy->message(message, messageType);
pvaClientChannel->message(message,messageType);
}
void PvaClientPut::channelPutConnect(

View File

@ -150,16 +150,12 @@ void PvaClientPutGet::checkPutGetState()
string PvaClientPutGet::getRequesterName()
{
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) return string("PvaClientPutGet::getRequesterName() PvaClient isDestroyed");
return yyy->getRequesterName();
return pvaClientChannel->getRequesterName();
}
void PvaClientPutGet::message(string const & message,MessageType messageType)
{
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) return;
yyy->message(message, messageType);
pvaClientChannel->message(message,messageType);
}
void PvaClientPutGet::channelPutGetConnect(