added channel::usable() to replace channel::connected()

This commit is contained in:
Emiel Bruijntjes 2018-11-12 15:24:25 +01:00
parent 6432ce2ec1
commit 888dc8c40b
3 changed files with 20 additions and 9 deletions

View File

@ -125,12 +125,23 @@ public:
}
/**
* Is the channel connected?
* Is the channel usable / not yet closed?
* @return bool
*/
bool connected()
bool usable() const
{
return _implementation->connected();
return _implementation->usable();
}
/**
* Is the channel connected?
* This method is deprecated: use Channel::usable()
* @return bool
* @deprecated
*/
bool connected() const
{
return usable();
}
/**

View File

@ -251,10 +251,10 @@ public:
Deferred &resume();
/**
* Is the channel connected?
* Is the channel usable / not yet closed?
* @return bool
*/
bool connected()
bool usable() const
{
return _state == state_connected || _state == state_ready;
}

View File

@ -71,8 +71,8 @@ void ChannelImpl::onError(const ErrorCallback &callback)
// store callback
_errorCallback = callback;
// if the channel is connected, all is ok
if (connected()) return;
// if the channel is usable, all is ok
if (usable()) return;
// is the channel closing down?
if (_state == state_closing) return callback("Channel is closing down");
@ -246,8 +246,8 @@ Deferred &ChannelImpl::rollbackTransaction()
*/
Deferred &ChannelImpl::close()
{
// this is completely pointless if not connected
if (!connected()) return push(std::make_shared<Deferred>(_state == state_closing));
// this is completely pointless if already closed
if (!usable()) return push(std::make_shared<Deferred>(_state == state_closing));
// send a channel close frame
auto &handler = push(ChannelCloseFrame(_id));