Package org.apache.bookkeeper.proto
Class PacketProcessorBase<T extends BookieProtocol.Request>
java.lang.Object
org.apache.bookkeeper.proto.PacketProcessorBase<T>
- All Implemented Interfaces:
Runnable
- Direct Known Subclasses:
ReadEntryProcessor,WriteEntryProcessor
abstract class PacketProcessorBase<T extends BookieProtocol.Request>
extends Object
implements Runnable
A base class for bookeeper packet processors.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) long(package private) T(package private) BookieRequestHandler(package private) BookieRequestProcessor -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidinit(T request, BookieRequestHandler requestHandler, BookieRequestProcessor requestProcessor) protected booleanprotected abstract voidprotected voidreset()voidrun()protected voidsendReadReqResponse(int rc, Object response, OpStatsLogger statsLogger, boolean throttle) protected voidsendResponse(int rc, Object response, OpStatsLogger statsLogger) protected voidsendResponseAndWait(int rc, Object response, OpStatsLogger statsLogger) Write on the channel and wait until the write is completed.protected voidsendWriteReqResponse(int rc, Object response, OpStatsLogger statsLogger)
-
Field Details
-
request
T extends BookieProtocol.Request request -
requestHandler
BookieRequestHandler requestHandler -
requestProcessor
BookieRequestProcessor requestProcessor -
enqueueNanos
long enqueueNanos
-
-
Constructor Details
-
PacketProcessorBase
PacketProcessorBase()
-
-
Method Details
-
init
protected void init(T request, BookieRequestHandler requestHandler, BookieRequestProcessor requestProcessor) -
reset
protected void reset() -
isVersionCompatible
protected boolean isVersionCompatible() -
sendWriteReqResponse
-
sendReadReqResponse
protected void sendReadReqResponse(int rc, Object response, OpStatsLogger statsLogger, boolean throttle) -
sendResponse
-
sendResponseAndWait
Write on the channel and wait until the write is completed.That will make the thread to get blocked until we're able to write everything on the TCP stack, providing auto-throttling and avoiding using too much memory when handling read-requests.
-
run
public void run() -
processPacket
protected abstract void processPacket()
-