Package net.spy.memcached
Class MemcachedNodeROImpl
java.lang.Object
net.spy.memcached.MemcachedNodeROImpl
- All Implemented Interfaces:
MemcachedNode
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add an operation to the queue.void
Let the node know that auth is complete.void
Notify node of successful read.void
Notify this node that it has reconnected.void
Move all of the operations delivered via addOperation into the internal write queue.Extract all queued items for this node destructively.void
fillWriteBuffer
(boolean optimizeGets) Fill the write buffer with data from the next operations in the queue.void
fixupOps()
Fix up the selection ops on the selection key.int
Get the number of bytes remaining to write.Get the SocketChannel for this connection.int
Get the operation at the top of the queue that is requiring input.Get the operation at the top of the queue that has information available to write.getRbuf()
Get the buffer used for reading data from this node.int
Get the current reconnect count.int
Compute the appropriate selection operations for the channel this MemcachedNode holds to the server.getSk()
Get the selection key from this node.Get the SocketAddress of the server to which this node is connected.getWbuf()
Get the buffer used for writing data to this node.boolean
True if an operation is available to read.boolean
True if an operation is available to write.void
Insert an operation to the beginning of the queue.boolean
isActive()
True if this node isactive.
i.e.boolean
True if this node isauthenticated.
long
Milliseconds since last successful read.void
Notify this node that it will be reconnecting.void
registerChannel
(SocketChannel ch, SelectionKey selectionKey) Register a channel with this node.Remove the operation at the top of the queue that is requiring input.Remove the operation at the top of the queue that has information available to write.void
Set the SocketChannel this node uses.void
setConnection
(MemcachedConnection connection) void
setContinuousTimeout
(boolean isIncrease) Count 'time out' exceptions to drop connections that fail perpetually.void
setSk
(SelectionKey to) Set the selection key for this node.void
Tell a node to set up for authentication.void
Clear the queue of currently processing operations by either cancelling them or setting them up to be reapplied after a reconnect.toString()
void
Transition the current write item into a read state.int
Write some bytes and return the number of bytes written.
-
Field Details
-
root
-
-
Constructor Details
-
MemcachedNodeROImpl
-
-
Method Details
-
toString
-
addOp
Description copied from interface:MemcachedNode
Add an operation to the queue. Authentication operations should never be added to the queue, but this is not checked.- Specified by:
addOp
in interfaceMemcachedNode
-
insertOp
Description copied from interface:MemcachedNode
Insert an operation to the beginning of the queue. This method is meant to be invoked rarely.- Specified by:
insertOp
in interfaceMemcachedNode
-
connected
public void connected()Description copied from interface:MemcachedNode
Notify this node that it has reconnected.- Specified by:
connected
in interfaceMemcachedNode
-
copyInputQueue
public void copyInputQueue()Description copied from interface:MemcachedNode
Move all of the operations delivered via addOperation into the internal write queue.- Specified by:
copyInputQueue
in interfaceMemcachedNode
-
fillWriteBuffer
public void fillWriteBuffer(boolean optimizeGets) Description copied from interface:MemcachedNode
Fill the write buffer with data from the next operations in the queue.- Specified by:
fillWriteBuffer
in interfaceMemcachedNode
- Parameters:
optimizeGets
- if true, combine sequential gets into a single multi-key get
-
fixupOps
public void fixupOps()Description copied from interface:MemcachedNode
Fix up the selection ops on the selection key.- Specified by:
fixupOps
in interfaceMemcachedNode
-
getBytesRemainingToWrite
public int getBytesRemainingToWrite()Description copied from interface:MemcachedNode
Get the number of bytes remaining to write.- Specified by:
getBytesRemainingToWrite
in interfaceMemcachedNode
-
getChannel
Description copied from interface:MemcachedNode
Get the SocketChannel for this connection.- Specified by:
getChannel
in interfaceMemcachedNode
-
getCurrentReadOp
Description copied from interface:MemcachedNode
Get the operation at the top of the queue that is requiring input.- Specified by:
getCurrentReadOp
in interfaceMemcachedNode
-
getCurrentWriteOp
Description copied from interface:MemcachedNode
Get the operation at the top of the queue that has information available to write.- Specified by:
getCurrentWriteOp
in interfaceMemcachedNode
-
getRbuf
Description copied from interface:MemcachedNode
Get the buffer used for reading data from this node.- Specified by:
getRbuf
in interfaceMemcachedNode
-
getReconnectCount
public int getReconnectCount()Description copied from interface:MemcachedNode
Get the current reconnect count.- Specified by:
getReconnectCount
in interfaceMemcachedNode
-
getSelectionOps
public int getSelectionOps()Description copied from interface:MemcachedNode
Compute the appropriate selection operations for the channel this MemcachedNode holds to the server.- Specified by:
getSelectionOps
in interfaceMemcachedNode
-
getSk
Description copied from interface:MemcachedNode
Get the selection key from this node.- Specified by:
getSk
in interfaceMemcachedNode
-
getSocketAddress
Description copied from interface:MemcachedNode
Get the SocketAddress of the server to which this node is connected.- Specified by:
getSocketAddress
in interfaceMemcachedNode
-
getWbuf
Description copied from interface:MemcachedNode
Get the buffer used for writing data to this node.- Specified by:
getWbuf
in interfaceMemcachedNode
-
hasReadOp
public boolean hasReadOp()Description copied from interface:MemcachedNode
True if an operation is available to read.- Specified by:
hasReadOp
in interfaceMemcachedNode
-
hasWriteOp
public boolean hasWriteOp()Description copied from interface:MemcachedNode
True if an operation is available to write.- Specified by:
hasWriteOp
in interfaceMemcachedNode
-
isActive
public boolean isActive()Description copied from interface:MemcachedNode
True if this node isactive.
i.e. is is currently connected and expected to be able to process requests- Specified by:
isActive
in interfaceMemcachedNode
-
reconnecting
public void reconnecting()Description copied from interface:MemcachedNode
Notify this node that it will be reconnecting.- Specified by:
reconnecting
in interfaceMemcachedNode
-
registerChannel
Description copied from interface:MemcachedNode
Register a channel with this node.- Specified by:
registerChannel
in interfaceMemcachedNode
-
removeCurrentReadOp
Description copied from interface:MemcachedNode
Remove the operation at the top of the queue that is requiring input.- Specified by:
removeCurrentReadOp
in interfaceMemcachedNode
-
removeCurrentWriteOp
Description copied from interface:MemcachedNode
Remove the operation at the top of the queue that has information available to write.- Specified by:
removeCurrentWriteOp
in interfaceMemcachedNode
-
setChannel
Description copied from interface:MemcachedNode
Set the SocketChannel this node uses.- Specified by:
setChannel
in interfaceMemcachedNode
-
setSk
Description copied from interface:MemcachedNode
Set the selection key for this node.- Specified by:
setSk
in interfaceMemcachedNode
-
setupResend
public void setupResend()Description copied from interface:MemcachedNode
Clear the queue of currently processing operations by either cancelling them or setting them up to be reapplied after a reconnect.- Specified by:
setupResend
in interfaceMemcachedNode
-
transitionWriteItem
public void transitionWriteItem()Description copied from interface:MemcachedNode
Transition the current write item into a read state.- Specified by:
transitionWriteItem
in interfaceMemcachedNode
-
writeSome
Description copied from interface:MemcachedNode
Write some bytes and return the number of bytes written.- Specified by:
writeSome
in interfaceMemcachedNode
- Returns:
- the number of bytes written
- Throws:
IOException
- if there's a problem writing
-
destroyInputQueue
Description copied from interface:MemcachedNode
Extract all queued items for this node destructively. This is useful for redistributing items.- Specified by:
destroyInputQueue
in interfaceMemcachedNode
-
authComplete
public void authComplete()Description copied from interface:MemcachedNode
Let the node know that auth is complete. Typically this would mean the node can start processing and accept new operations to its input queue.- Specified by:
authComplete
in interfaceMemcachedNode
-
setupForAuth
public void setupForAuth()Description copied from interface:MemcachedNode
Tell a node to set up for authentication. Typically this would mean blocking additions to the queue. In a reconnect situation this may mean putting any queued operations on hold to get to an auth complete state.- Specified by:
setupForAuth
in interfaceMemcachedNode
-
getContinuousTimeout
public int getContinuousTimeout()- Specified by:
getContinuousTimeout
in interfaceMemcachedNode
-
setContinuousTimeout
public void setContinuousTimeout(boolean isIncrease) Description copied from interface:MemcachedNode
Count 'time out' exceptions to drop connections that fail perpetually.- Specified by:
setContinuousTimeout
in interfaceMemcachedNode
- Parameters:
isIncrease
-
-
isAuthenticated
public boolean isAuthenticated()Description copied from interface:MemcachedNode
True if this node isauthenticated.
- Specified by:
isAuthenticated
in interfaceMemcachedNode
-
lastReadDelta
public long lastReadDelta()Description copied from interface:MemcachedNode
Milliseconds since last successful read.- Specified by:
lastReadDelta
in interfaceMemcachedNode
-
completedRead
public void completedRead()Description copied from interface:MemcachedNode
Notify node of successful read. This is used so the node can keep track of any internal debugging or state it cares about on read.- Specified by:
completedRead
in interfaceMemcachedNode
-
getConnection
- Specified by:
getConnection
in interfaceMemcachedNode
-
setConnection
- Specified by:
setConnection
in interfaceMemcachedNode
-