2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.openflowplugin.api.openflow.device;
11 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
12 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
13 import org.opendaylight.yangtools.yang.binding.DataObject;
14 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
17 * Handles operations with transactions.
19 public interface TxFacade {
22 * Method creates put operation using provided data in underlying transaction chain.
24 <T extends DataObject> void writeToTransaction(LogicalDatastoreType store, InstanceIdentifier<T> path, T data);
27 * Method creates put operation using provided data in underlying transaction
28 * chain and flag to create missing parents.
29 * WARNING: This method is slow because of additional reading cost.
30 * Use it only if you really need to create parents.
32 <T extends DataObject> void writeToTransactionWithParentsSlow(LogicalDatastoreType store,
33 InstanceIdentifier<T> path,
37 * Method creates delete operation for provided path in underlying transaction chain.
39 <T extends DataObject> void addDeleteToTxChain(LogicalDatastoreType store, InstanceIdentifier<T> path);
42 * Method submits Transaction to DataStore.
43 * @return transaction is submitted successfully
45 boolean submitTransaction();
48 * Method submits Transaction to DataStore and wait till completes by doing get on tx future.
49 * @return transaction is submitted successfully
51 boolean syncSubmitTransaction();
54 * Method exposes transaction created for device
55 * represented by this context. This read only transaction has a fresh dataStore snapshot.
56 * There is a possibility to get different data set from DataStore
57 * as write transaction in this context.
58 * @return readOnlyTransaction - Don't forget to close it after finish reading
60 ReadOnlyTransaction getReadTransaction();
63 * Method returns true if transaction chain manager is enabled.
64 * @return is transaction chain manager enabled
66 boolean isTransactionsEnabled();