class FlumeEventQueue {

  synchronized FlumeEventPointer removeHead(long transactionID) {
    if (backingStore.getSize() == 0) {
      return null;
    }

    long value = remove(0, transactionID);
    Preconditions.checkState(value != EMPTY, "Empty value "
        + channelNameDescriptor);

    FlumeEventPointer ptr = FlumeEventPointer.fromLong(value);
    backingStore.decrementFileID(ptr.getFileID());
    return ptr;
  }

    FlumeEventQueue(EventQueueBackingStore backingStore, File inflightTakesFile,
                  File inflightPutsFile, File queueSetDBDir);

}