This class has the single method channelStateChange. It is called each time the channel connection status changes.
NOTE: The implementation must not call a method that blocks waiting for a response from the server. It it does the client may be blocked forever.
An example of illegal code is:
virtual void channelStateChange(PvaClientChannelPtr const & channel, bool isConnected)
{
if(isConnected&&!pvaClientPut)
{
pvaClientPut = pvaClientChannel->createPut(request);
pvaClientPut->connect();
}
}
This is illegal because the call to connect blocks.
The following is an example of legal code:
virtual void channelStateChange(PvaClientChannelPtr const & channel, bool isConnected)
{
if(isConnected&&!pvaClientPut)
{
pvaClientPut = pvaClientChannel->createPut(request);
pvaClientPut->issueConnect();
}
}
This is legal code because neither createPut or issueConnect blocks.