org.apache.qpid.util.concurrent
Interface SynchRef

All Known Implementing Classes:
BatchSynchQueueBase.SynchRefImpl

public interface SynchRef

A SynchRef is an interface which is returned from the synchronous take and drain methods of BatchSynchQueue, allowing call-backs to be made against the synchronizing strucutre. It allows the consumer to communicate when it wants producers that have their data taken to be unblocked.

CRC Card
Responsibilities
Report number of records returned by a taking operation.
Provide call-back to release producers of taken records.


Method Summary
 int getNumRecords()
          Reports the number of records taken by the take or drain operation.
 void unblockProducers()
          Any producers that have had their data elements taken from the queue but have not been unblocked are unblocked when this method is called.
 

Method Detail

getNumRecords

int getNumRecords()
Reports the number of records taken by the take or drain operation.

Returns:
The number of records taken by the take or drain operation.

unblockProducers

void unblockProducers()
Any producers that have had their data elements taken from the queue but have not been unblocked are unblocked when this method is called. The exception to this is producers that have had their data put back onto the queue by a consumer. Producers that have had exceptions for their data items registered by consumers will be unblocked but will not return from their put call normally, but with an exception instead.



Licensed to the Apache Software Foundation