/* * Copyright (c) 2015 Pantheon Technologies s.r.o. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.openflowjava.protocol.api.connection; import com.google.common.annotations.Beta; import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput; /** * Handler of the outbound queue. The queue has a maximum depth assigned when the * handler is registered. */ @Beta public interface OutboundQueueHandler { /** * Create a new {@link BarrierInput barrier} message. This callback is invoked * when the queue is being flushed to the switch. The barrier ensures that any * outstanding requests are detected as either completed or failed. * * @param xid XID for the barrier message * @return New barrier message. */ @Nonnull BarrierInput createBarrierRequest(@Nonnull Long xid); /** * Invoked whenever the underlying queue is refreshed. Implementations should * ensure they are talking to the latest queue * @param queue New queue instance, null indicates a shutdown, e.g. the queue * is no longer available. */ void onConnectionQueueChanged(OutboundQueue queue); }