org.apache.solr.client.solrj.cloud.autoscaling

## Interface DistribStateManager

All Superinterfaces:
  AutoCloseable, Closeable, SolrCloseable

All Known Implementing Classes:
  DelegatingDistribStateManager, ZkDistribStateManager

    public interface DistribStateManager
    extends SolrCloseable

This interface represents a distributed state repository.

### Method Summary

All Methods Instance Methods Abstract Methods Default Methods
`String` `createData(String path, byte[] data, org.apache.zookeeper.CreateMode mode)` Create data (leaf) node at specified path.
`default AutoScalingConfig` `getAutoScalingConfig()`
`AutoScalingConfig` `getAutoScalingConfig(org.apache.zookeeper.Watcher watcher)`
`default VersionedData` `getData(String path)`
`VersionedData` `getData(String path, org.apache.zookeeper.Watcher watcher)`
`boolean` `hasData(String path)`
`List<String>` `listData(String path)`
`List<String>` `listData(String path, org.apache.zookeeper.Watcher watcher)`
`default List<String>` `listTree(String root)` List a subtree including the root path, using breadth-first traversal.
`void` `makePath(String path)`
`void` `makePath(String path, byte[] data, org.apache.zookeeper.CreateMode createMode, boolean failOnExists)`
`List<org.apache.zookeeper.OpResult>` `multi(Iterable<org.apache.zookeeper.Op> ops)`
`void` `removeData(String path, int version)`
`default void` `removeRecursively(String root, boolean ignoreMissing, boolean includeRoot)` Remove data recursively.
`void` `setData(String path, byte[] data, int version)`

### Methods inherited from interface org.apache.solr.common.SolrCloseable

`isClosed`

### Methods inherited from interface java.io.Closeable

`close`

### Method Detail

#### hasData

    boolean hasData(String path)
             throws IOException,
                    org.apache.zookeeper.KeeperException,
                    InterruptedException

Throws:
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### listData

    List<String> listData(String path)
                   throws NoSuchElementException,
                          IOException,
                          org.apache.zookeeper.KeeperException,
                          InterruptedException

Throws:
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### listData

    List<String> listData(String path,
                          org.apache.zookeeper.Watcher watcher)
                   throws NoSuchElementException,
                          IOException,
                          org.apache.zookeeper.KeeperException,
                          InterruptedException

Throws:
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### getData

    VersionedData getData(String path,
                          org.apache.zookeeper.Watcher watcher)
                   throws NoSuchElementException,
                          IOException,
                          org.apache.zookeeper.KeeperException,
                          InterruptedException

Throws:
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### getData

    default VersionedData getData(String path)
                           throws NoSuchElementException,
                                  IOException,
                                  org.apache.zookeeper.KeeperException,
                                  InterruptedException

Throws:
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### makePath

    void makePath(String path)
           throws AlreadyExistsException,
                  IOException,
                  org.apache.zookeeper.KeeperException,
                  InterruptedException

Throws:
  `AlreadyExistsException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### makePath

    void makePath(String path,
                  byte[] data,
                  org.apache.zookeeper.CreateMode createMode,
                  boolean failOnExists)
           throws AlreadyExistsException,
                  IOException,
                  org.apache.zookeeper.KeeperException,
                  InterruptedException

Throws:
  `AlreadyExistsException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### createData

    String createData(String path,
                      byte[] data,
                      org.apache.zookeeper.CreateMode mode)
               throws AlreadyExistsException,
                      IOException,
                      org.apache.zookeeper.KeeperException,
                      InterruptedException

Create data (leaf) node at specified path.

Parameters:
  `path` - base path name of the node.
  `data` - data to be stored.
  `mode` - creation mode.
Returns:
  actual path of the node - in case of sequential nodes this will differ from the base path because of the appended sequence number.
Throws:
  `AlreadyExistsException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### removeData

    void removeData(String path,
                    int version)
             throws NoSuchElementException,
                    IOException,
                    NotEmptyException,
                    org.apache.zookeeper.KeeperException,
                    InterruptedException,
                    BadVersionException

Throws:
  `NoSuchElementException`
  `IOException`
  `NotEmptyException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`
  `BadVersionException`

#### setData

    void setData(String path,
                 byte[] data,
                 int version)
          throws BadVersionException,
                 NoSuchElementException,
                 IOException,
                 org.apache.zookeeper.KeeperException,
                 InterruptedException

Throws:
  `BadVersionException`
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### multi

    List<org.apache.zookeeper.OpResult> multi(Iterable<org.apache.zookeeper.Op> ops)
                                       throws BadVersionException,
                                              NoSuchElementException,
                                              AlreadyExistsException,
                                              IOException,
                                              org.apache.zookeeper.KeeperException,
                                              InterruptedException

Throws:
  `BadVersionException`
  `NoSuchElementException`
  `AlreadyExistsException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### getAutoScalingConfig

    AutoScalingConfig getAutoScalingConfig(org.apache.zookeeper.Watcher watcher)
                                    throws InterruptedException,
                                           IOException

Throws:
  `InterruptedException`
  `IOException`

#### getAutoScalingConfig

    default AutoScalingConfig getAutoScalingConfig()
                                            throws InterruptedException,
                                                   IOException

Throws:
  `InterruptedException`
  `IOException`

#### listTree

    default List<String> listTree(String root)
                           throws NoSuchElementException,
                                  IOException,
                                  org.apache.zookeeper.KeeperException,
                                  InterruptedException

List a subtree including the root path, using breadth-first traversal.

Parameters:
  `root` - root path
Returns:
  list of full paths, with the root path being the first element
Throws:
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### removeRecursively

    default void removeRecursively(String root,
                                   boolean ignoreMissing,
                                   boolean includeRoot)
                            throws NoSuchElementException,
                                   IOException,
                                   NotEmptyException,
                                   org.apache.zookeeper.KeeperException,
                                   InterruptedException,
                                   BadVersionException

Remove data recursively.

Parameters:
  `root` - root path
  `ignoreMissing` - ignore errors if root or any children path is missing
  `includeRoot` - when true delete also the root path
Throws:
  `NoSuchElementException`
  `IOException`
  `NotEmptyException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`
  `BadVersionException`