# Class ReadOnlyRequestProcessor

java.lang.Object
java.lang.Thread
org.apache.zookeeper.server.ZooKeeperThread
org.apache.zookeeper.server.ZooKeeperCriticalThread
org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor

All Implemented Interfaces:
  `Runnable, RequestProcessor`

public class ReadOnlyRequestProcessor extends ZooKeeperCriticalThread implements RequestProcessor
This processor is at the beginning of the ReadOnlyZooKeeperServer's processors chain. All it does is, it passes read-only operations (e.g. OpCode.getData, OpCode.exists) through to the next processor, but drops state-changing operations (e.g. OpCode.create, OpCode.setData).

## Nested Class Summary

### Nested classes/interfaces inherited from class Thread

`Thread.State, Thread.UncaughtExceptionHandler`

### Nested classes/interfaces inherited from interface RequestProcessor

`RequestProcessor.RequestProcessorException`

## Field Summary

### Fields inherited from class Thread

`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

## Constructor Summary

Constructors
Constructor
Description
`ReadOnlyRequestProcessor(ZooKeeperServer zks, RequestProcessor nextProcessor)`

## Method Summary

Modifier and Type
Method
Description
`void`
`processRequest(Request request)`
`void`
`run()`
`void`
`shutdown()`

### Methods inherited from class ZooKeeperCriticalThread

`handleException`

### Methods inherited from class Thread

`activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield`

### Methods inherited from class Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### ReadOnlyRequestProcessor

public ReadOnlyRequestProcessor(ZooKeeperServer zks, RequestProcessor nextProcessor)

## Method Details

### run

public void run()

Specified by:
  `run` in interface `Runnable`
Overrides:
  `run` in class `Thread`

### processRequest

public void processRequest(Request request)

Specified by:
  `processRequest` in interface `RequestProcessor`

### shutdown

public void shutdown()

Specified by:
  `shutdown` in interface `RequestProcessor`