Boost Software License Version 1.0. See LICENSE_BOOST.txt for details. Alternatively, this file may be distributed under the terms of the Tango 3-Clause BSD License (see LICENSE_BSD.txt for details).
Copyright (c) 2009-2016 dunnhumby Germany GmbH. All rights reserved.
Composes two queues, with the second acting as an overflow of the first.
Items are initially pushed into the main queue until it is full. Subsequent items then begin to be pushed into the swap queue and will continue doing so until the swap queue becomes empty again.
Items are popped first from the main queue, and secondly from the overflow queue.
The composed queues do not have to be of the same type (they are both simply required to implement the IByteQueue interface). A common usage pattern is to chain a file-based queue as an overflow of a memory-based queue.