X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fapi%2Fdata%2FDataModificationTransaction.java;h=9ce11c71e4b6d1a41fa61a4dfa94401700db97e1;hb=fd517d730dc4e0a46e4efd7e39b5eaa2181c18ca;hp=4f69f0b38a1d86550189e1fbcc2db4aa05e563a4;hpb=a251833f27fd00040904e2df316cd707c8129d1e;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataModificationTransaction.java b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataModificationTransaction.java index 4f69f0b38a..9ce11c71e4 100644 --- a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataModificationTransaction.java +++ b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/data/DataModificationTransaction.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.sal.binding.api.data; import java.util.EventListener; +import java.util.concurrent.Future; import org.opendaylight.controller.md.sal.common.api.TransactionStatus; import org.opendaylight.controller.md.sal.common.api.data.DataModification; @@ -15,17 +16,68 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.RpcResult; public interface DataModificationTransaction extends DataModification, DataObject> { + /** + * Returns an unique identifier for transaction + * + */ + @Override + public Object getIdentifier(); + + /** + * Initiates a two-phase commit of candidate data. + * + *

+ * The {@link Consumer} could initiate a commit of candidate data + * + *

+ * The successful commit changes the state of the system and may affect + * several components. + * + *

+ * The effects of successful commit of data are described in the + * specifications and YANG models describing the {@link Provider} components + * of controller. It is assumed that {@link Consumer} has an understanding + * of this changes. + * + * + * @see DataCommitHandler for further information how two-phase commit is + * processed. + * @param store + * Identifier of the store, where commit should occur. + * @return Result of the commit, containing success information or list of + * encountered errors, if commit was not successful. + */ + @Override + public Future> commit(); + + + + /** + * Register a listener for transaction + * + * @param listener + * @return + */ ListenerRegistration registerListener(DataTransactionListener listener); - //FIXME: After 0.6 Release of YANG-Binding - //public T readOperationalData(InstanceIdentifier path); - //public T readConfigurationData(InstanceIdentifier path); + /** + * Listener for transaction state changes + * + * + */ public interface DataTransactionListener extends EventListener { + /** + * Callback is invoked after each transaction status change. + * + * @param transaction Transaction + * @param status New status + */ void onStatusUpdated(DataModificationTransaction transaction,TransactionStatus status); } }