40 lines
746 B
C++
40 lines
746 B
C++
|
|
/**
|
||
|
|
* DeferredCancel.cpp
|
||
|
|
*
|
||
|
|
* Implementation file for the DeferredCancel class
|
||
|
|
*
|
||
|
|
* @copyright 2014 Copernica BV
|
||
|
|
*/
|
||
|
|
#include "includes.h"
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Namespace
|
||
|
|
*/
|
||
|
|
namespace AMQP {
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Report success for frames that report cancel operations
|
||
|
|
* @param name Consumer tag that is cancelled
|
||
|
|
* @return Deferred
|
||
|
|
*/
|
||
|
|
Deferred *DeferredCancel::reportSuccess(const std::string &name) const
|
||
|
|
{
|
||
|
|
// in the channel, we should uninstall the consumer
|
||
|
|
_channel->uninstall(name);
|
||
|
|
|
||
|
|
// skip if no special callback was installed
|
||
|
|
if (!_cancelCallback) return Deferred::reportSuccess();
|
||
|
|
|
||
|
|
// call the callback
|
||
|
|
_cancelCallback(name);
|
||
|
|
|
||
|
|
// return next object
|
||
|
|
return _next;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* End namespace
|
||
|
|
*/
|
||
|
|
}
|
||
|
|
|