X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcore%2Fspi%2Fdata%2FDOMStore.java;h=8adebe11dc9fa18a513a7e6d4fe5bfa03c084e0b;hp=c82a2b855fcaa6fd8f7c5b27c67b8682d238acfa;hb=a885056d2fddd17e3879aca9b75fe597e3be7953;hpb=a2c374bb7bd34eb27bac4db587e843378181762e diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java index c82a2b855f..8adebe11dc 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java @@ -7,54 +7,33 @@ */ package org.opendaylight.controller.sal.core.spi.data; -import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; -import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; -import org.opendaylight.controller.md.sal.common.api.data.DataChangeListener; -import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -public interface DOMStore { - - /** - * - * Creates a read only transaction - * - * @return - */ - DOMStoreReadTransaction newReadOnlyTransaction(); - - /** - * Creates write only transaction - * - * @return - */ - DOMStoreWriteTransaction newWriteOnlyTransaction(); - - /** - * Creates Read-Write transaction - * - * @return - */ - DOMStoreReadWriteTransaction newReadWriteTransaction(); - +/** + * DOM Data Store + * + *

+ * DOM Data Store provides transactional tree-like storage for YANG-modeled + * entities described by YANG schema and represented by {@link NormalizedNode}. + * + *

+ * Read and write access to stored data is provided only via transactions + * created using {@link #newReadOnlyTransaction()}, + * {@link #newWriteOnlyTransaction()} and {@link #newReadWriteTransaction()}, or + * by creating {@link org.opendaylight.controller.md.sal.common.api.data.TransactionChain}. + * + */ +public interface DOMStore extends DOMStoreTransactionFactory { /** - * Registers {@link DataChangeListener} for Data Change callbacks - * which will be triggered on the change of provided subpath. What - * constitutes a change depends on the @scope parameter. + * Creates new transaction chain. * - * Listener upon registration receives an initial callback - * {@link AsyncDataChangeListener#onDataChanged(org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent)} - * which contains stable view of data tree at the time of registration. - * - * @param path Path (subtree identifier) on which client listener will be invoked. - * @param listener Instance of listener which should be invoked on - * @param scope Scope of change which triggers callback. - * @return Listener Registration object, which client may use to close registration - * / interest on receiving data changes. + *

+ * Transactions in a chain need to be committed in sequence and each + * transaction should see the effects of previous transactions as if they + * happened. * + * @see DOMStoreTransactionChain for more information. + * @return Newly created transaction chain. */ - >> ListenerRegistration registerChangeListener( - InstanceIdentifier path, L listener, DataChangeScope scope); - + DOMStoreTransactionChain createTransactionChain(); }