libcamera: request: Add hasPendingBuffers() method

Add method to verify if a request has pending buffers yet to be
completed.

Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Jacopo Mondi 2019-04-09 13:00:08 +02:00
parent 7b7c8f06a0
commit 571d16b539
2 changed files with 12 additions and 2 deletions

View file

@ -37,6 +37,8 @@ public:
Status status() const { return status_; }
bool hasPendingBuffers() const { return !pending_.empty(); }
private:
friend class Camera;
friend class PipelineHandler;

View file

@ -106,6 +106,14 @@ Buffer *Request::findBuffer(Stream *stream) const
* \return The request completion status
*/
/**
* \fn Request::hasPendingBuffers()
* \brief Check if a request has buffers yet to be completed
*
* \return True if the request has buffers pending for completion, false
* otherwise
*/
/**
* \brief Prepare the resources for the completion handler
*/
@ -127,7 +135,7 @@ int Request::prepare()
*/
void Request::complete(Status status)
{
ASSERT(pending_.empty());
ASSERT(!hasPendingBuffers());
status_ = status;
}
@ -149,7 +157,7 @@ bool Request::completeBuffer(Buffer *buffer)
int ret = pending_.erase(buffer);
ASSERT(ret == 1);
return pending_.empty();
return !hasPendingBuffers();
}
} /* namespace libcamera */