Order Queues

Each client adapter session uses an internal order queue. This order queue is used differently depending on the context. In a driver context, the order queue is used to store service orders created by a parser.

When a protocol message comes to a provcautil::Binder, the service orders currently attached to the protocol message are queued into a heap, which is exclusively allocated for this protocol message.

The policy controlling when queued service orders should be flushed, is controlled by the OrderQueueFactory::flushPolicy parameter and by the protocol message going though a provcautil::EndPoint.

Messages are pulled from order queues by the Fulfillment Provisioning flow controller and are output on the ports of the corresponding provca::ClientAdapter instance in the main Fulfillment Provisioning flow. In a responder context, the order queue might be used to store a protocol message while awaiting for an asynchronous response to be correlated with it.

Order queues are instantiated and configured via the provca::Config::orderQueueFactoryName which must refer to an existing instance of provca::OrderQueueFactory.

interface OrderQueueFactory
{
        attribute string      controllerName;
        attribute boolean     makeCheckpoints;
        attribute FlushPolicy flushPolicy;
};

It is recommended to not override the virtual createOrderQueue operation.