X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fbroker%2Fimpl%2FPingPongDataBroker.java;fp=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fbroker%2Fimpl%2FPingPongDataBroker.java;h=715a13677af54e9796dfe076f4d7032cd361bc0a;hp=0000000000000000000000000000000000000000;hb=5764146d24df9d9450ebfbb0aec10cbbcdcc655c;hpb=152891151a8e7c7b0905b4b530837e2538b2ce7b diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/PingPongDataBroker.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/PingPongDataBroker.java new file mode 100644 index 0000000000..715a13677a --- /dev/null +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/PingPongDataBroker.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.md.sal.dom.broker.impl; + +import com.google.common.base.Preconditions; +import javax.annotation.Nonnull; +import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; +import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; +import org.opendaylight.controller.md.sal.dom.spi.ForwardingDOMDataBroker; + +/** + * An implementation of a {@link DOMDataBroker}, which forwards most requests to a delegate. + * + * Its interpretation of the API contract is somewhat looser, specifically it does not + * guarantee transaction ordering between transactions allocated directly from the broker + * and its transaction chains. + */ +public final class PingPongDataBroker extends ForwardingDOMDataBroker implements AutoCloseable { + private final DOMDataBroker delegate; + + /** + * Instantiate a new broker, backed by the the specified delegate + * {@link DOMDataBroker}. + * + * @param delegate Backend broker, may not be null. + */ + public PingPongDataBroker(final @Nonnull DOMDataBroker delegate) { + this.delegate = Preconditions.checkNotNull(delegate); + } + + @Override + protected DOMDataBroker delegate() { + return delegate; + } + + @Override + public PingPongTransactionChain createTransactionChain(final TransactionChainListener listener) { + return new PingPongTransactionChain(delegate, listener); + } + + @Override + public void close() { + // TODO Auto-generated method stub + } +}