org.apache.thrift.server
Class AbstractNonblockingServer

java.lang.Object
  extended by org.apache.thrift.server.TServer
      extended by org.apache.thrift.server.AbstractNonblockingServer
Direct Known Subclasses:
TNonblockingServer, TThreadedSelectorServer

public abstract class AbstractNonblockingServer
extends TServer

Provides common methods and classes used by nonblocking TServer implementations.


Nested Class Summary
static class AbstractNonblockingServer.AbstractNonblockingServerArgs<T extends AbstractNonblockingServer.AbstractNonblockingServerArgs<T>>
           
protected  class AbstractNonblockingServer.AbstractSelectThread
          An abstract thread that handles selecting on a set of transports and FrameBuffers associated with selected keys corresponding to requests.
 class AbstractNonblockingServer.AsyncFrameBuffer
           
 class AbstractNonblockingServer.FrameBuffer
          Class that implements a sort of state machine around the interaction with a client and an invoker.
 
Nested classes/interfaces inherited from class org.apache.thrift.server.TServer
TServer.AbstractServerArgs<T extends TServer.AbstractServerArgs<T>>, TServer.Args
 
Field Summary
protected  org.slf4j.Logger LOGGER
           
 
Fields inherited from class org.apache.thrift.server.TServer
eventHandler_, inputProtocolFactory_, inputTransportFactory_, outputProtocolFactory_, outputTransportFactory_, processorFactory_, serverTransport_
 
Constructor Summary
AbstractNonblockingServer(AbstractNonblockingServer.AbstractNonblockingServerArgs args)
           
 
Method Summary
protected abstract  boolean requestInvoke(AbstractNonblockingServer.FrameBuffer frameBuffer)
          Perform an invocation.
 void serve()
          Begin accepting connections and processing invocations.
protected  boolean startListening()
          Have the server transport start accepting connections.
protected abstract  boolean startThreads()
          Starts any threads required for serving.
protected  void stopListening()
          Stop listening for connections.
protected abstract  void waitForShutdown()
          A method that will block until when threads handling the serving have been shut down.
 
Methods inherited from class org.apache.thrift.server.TServer
getEventHandler, isServing, setServerEventHandler, setServing, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOGGER

protected final org.slf4j.Logger LOGGER
Constructor Detail

AbstractNonblockingServer

public AbstractNonblockingServer(AbstractNonblockingServer.AbstractNonblockingServerArgs args)
Method Detail

serve

public void serve()
Begin accepting connections and processing invocations.

Specified by:
serve in class TServer

startThreads

protected abstract boolean startThreads()
Starts any threads required for serving.

Returns:
true if everything went ok, false if threads could not be started.

waitForShutdown

protected abstract void waitForShutdown()
A method that will block until when threads handling the serving have been shut down.


startListening

protected boolean startListening()
Have the server transport start accepting connections.

Returns:
true if we started listening successfully, false if something went wrong.

stopListening

protected void stopListening()
Stop listening for connections.


requestInvoke

protected abstract boolean requestInvoke(AbstractNonblockingServer.FrameBuffer frameBuffer)
Perform an invocation. This method could behave several different ways - invoke immediately inline, queue for separate execution, etc.

Returns:
true if invocation was successfully requested, which is not a guarantee that invocation has completed. False if the request failed.