blob: 631aaea7355c549187f884144c84885b06d03b28 [file] [log] [blame]
Jonathan Hart6df90172014-04-03 10:13:11 -07001package net.onrc.onos.core.datastore.internal;
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -07002
Jonathan Hart6df90172014-04-03 10:13:11 -07003import net.onrc.onos.core.datastore.IMultiEntryOperation;
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -07004
5/**
6 * Interface for backend to realize IMultiEntryOperation.
Ray Milkey269ffb92014-04-03 14:43:30 -07007 * <p/>
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -07008 * Backend implementation must use these interfaces to update IMultiEntryOperation
9 * in order to support KVObject.
10 */
11public interface IModifiableMultiEntryOperation extends IMultiEntryOperation {
12
13 /**
14 * Set value and version.
Ray Milkey269ffb92014-04-03 14:43:30 -070015 * <p/>
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -070016 * Expected to be called on multiRead implementations.
Ray Milkey269ffb92014-04-03 14:43:30 -070017 *
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -070018 * @param value
19 * @param version
20 */
21 public void setValue(final byte[] value, final long version);
22
23 /**
24 * Update version of the value.
Ray Milkey269ffb92014-04-03 14:43:30 -070025 * <p/>
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -070026 * Expected to be called on multiWrite, multiRead implementations.
Ray Milkey269ffb92014-04-03 14:43:30 -070027 *
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -070028 * @param version
29 */
30 public void setVersion(long version);
31
32 /**
33 * Update status.
Ray Milkey269ffb92014-04-03 14:43:30 -070034 * <p/>
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -070035 * Backend implementation is expected to update to SUCCESS or FAILED after
36 * datastore operation.
Ray Milkey269ffb92014-04-03 14:43:30 -070037 *
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -070038 * @param status
39 */
40 public void setStatus(STATUS status);
41
42 /**
43 * Return actual IModifiableMultiEntryOperation if is a wrapper, this otherwise.
Ray Milkey269ffb92014-04-03 14:43:30 -070044 *
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -070045 * @return actual IModifiableMultiEntryOperation directly interact with data store
46 */
47 public IModifiableMultiEntryOperation getActualOperation();
48}