@Override protected DataTreeSnapshot takeSnapshot() { return tree.takeSnapshot(); }
final DataTreeSnapshot takeSnapshot() { return dataTree.takeSnapshot(); }
final DataTreeSnapshot takeSnapshot() { return dataTree.takeSnapshot(); }
DataTreeSnapshot takeSnapshot() { return dataTree.takeSnapshot(); }
@Override public DataTreeSnapshot takeSnapshot() { return delegateDependency.takeSnapshot(); }
@Override public synchronized <L extends DOMDataTreeChangeListener> ListenerRegistration<L> registerTreeChangeListener( final YangInstanceIdentifier treeId, final L listener) { /* * Make sure commit is not occurring right now. Listener has to be * registered and its state capture enqueued at a consistent point. */ return changePublisher.registerTreeChangeListener(treeId, listener, dataTree.takeSnapshot()); }
private Optional<NormalizedNode<?, ?>> getRootNode() { return dataTree.takeSnapshot().readNode(rootIdentifier); } }
@Override public synchronized <L extends DOMDataTreeChangeListener> ListenerRegistration<L> registerTreeChangeListener(final YangInstanceIdentifier treeId, final L listener) { /* * Make sure commit is not occurring right now. Listener has to be * registered and its state capture enqueued at a consistent point. */ return changePublisher.registerTreeChangeListener(treeId, listener, dataTree.takeSnapshot()); }
@Override public DOMStoreReadTransaction newReadOnlyTransaction(TransactionIdentifier identifier) { return SnapshotBackedTransactions.newReadTransaction(identifier, false, dataTree.takeSnapshot()); }
ConfigSnapshot() { this.snapshot = dataTree.takeSnapshot(); this.modification = snapshot.newModification(); }
@Override public DOMStoreReadWriteTransaction newReadWriteTransaction(TransactionIdentifier identifier) { return SnapshotBackedTransactions.newReadWriteTransaction(identifier, false, dataTree.takeSnapshot(), this); }
@Override public DOMStoreReadTransaction newReadOnlyTransaction() { return SnapshotBackedTransactions.newReadTransaction(nextIdentifier(), debugTransactions, dataTree.takeSnapshot()); }
@Override public DOMStoreWriteTransaction newWriteOnlyTransaction() { return SnapshotBackedTransactions.newWriteTransaction(nextIdentifier(), debugTransactions, dataTree.takeSnapshot(), this); }
@Override public DOMStoreReadWriteTransaction newReadWriteTransaction() { return SnapshotBackedTransactions.newReadWriteTransaction(nextIdentifier(), debugTransactions, dataTree.takeSnapshot(), this); }
@Override public void commit(final DataTreeCandidate dataTreeCandidate) { LOG.trace("Commit detected"); delegateDependency.commit(dataTreeCandidate); LOG.debug("Delegate commit successful. Persisting data"); // TODO(HONEYCOMB-163): doing full read and full write might not be the fastest way of persisting data here final DataTreeSnapshot dataTreeSnapshot = delegateDependency.takeSnapshot(); // TODO this can be handled in background by a dedicated thread + a limited blocking queue // TODO enable configurable granularity for persists. Maybe doing write on every modification is too much // and we could do bulk persist persister.persistCurrentData(dataTreeSnapshot.readNode(YangInstanceIdentifier.EMPTY)); }
@Override public DOMStoreReadTransaction newReadOnlyTransaction() { return SnapshotBackedTransactions.newReadTransaction(nextIdentifier(), debugTransactions, dataTree.takeSnapshot()); }
private NormalizedNodeAggregator combine() throws DataValidationFailedException { final DataTreeModification mod = dataTree.takeSnapshot().newModification(); for (final Optional<NormalizedNode<?,?>> node : nodes) { if (node.isPresent()) { mod.merge(rootIdentifier, node.get()); } } mod.ready(); dataTree.validate(mod); final DataTreeCandidate candidate = dataTree.prepare(mod); dataTree.commit(candidate); return this; }
@Override public void ready() { try { delegate.ready(); } catch (SchemaValidationFailedException e) { DataTreeModification newModification = dataTree.takeSnapshot().newModification(); delegate.applyToCursor(new PruningDataTreeModificationCursor(newModification, this)); delegate = newModification; delegate.ready(); } }
@Override public DataTree create(final DataTreeConfiguration treeConfig, final SchemaContext initialSchemaContext, final NormalizedNodeContainer<?, ?, ?> initialRoot) throws DataValidationFailedException { final DataTree ret = create(treeConfig, initialSchemaContext, false); final DataTreeModification mod = ret.takeSnapshot().newModification(); mod.write(YangInstanceIdentifier.EMPTY, initialRoot); mod.ready(); ret.validate(mod); final DataTreeCandidate candidate = ret.prepare(mod); ret.commit(candidate); return ret; }
@Override public DataTree create(final DataTreeConfiguration treeConfig, final SchemaContext initialSchemaContext, final NormalizedNodeContainer<?, ?, ?> initialRoot) throws DataValidationFailedException { final DataTree ret = create(treeConfig, initialSchemaContext, false); final DataTreeModification mod = ret.takeSnapshot().newModification(); mod.write(YangInstanceIdentifier.EMPTY, initialRoot); mod.ready(); ret.validate(mod); final DataTreeCandidate candidate = ret.prepare(mod); ret.commit(candidate); return ret; }