Package org.jgroups.protocols
Class UFC_NB
- java.lang.Object
-
- org.jgroups.stack.Protocol
-
- org.jgroups.protocols.FlowControl
-
- org.jgroups.protocols.UFC
-
- org.jgroups.protocols.UFC_NB
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.concurrent.Future<?>
credit_send_task
protected int
max_queue_size
protected java.util.function.Consumer<Message>
send_function
-
Fields inherited from class org.jgroups.protocols.UFC
sent, UFC_CREDIT_REQUEST_HDR, UFC_REPLENISH_HDR
-
Fields inherited from class org.jgroups.protocols.FlowControl
frag_size, local_addr, max_block_time, max_block_times, max_credits, min_credits, min_threshold, num_credit_requests_received, num_credit_requests_sent, num_credit_responses_received, num_credit_responses_sent, received, running
-
Fields inherited from class org.jgroups.stack.Protocol
after_creation_hook, down_prot, ergonomics, id, log, stack, stats, up_prot
-
-
Constructor Summary
Constructors Constructor Description UFC_NB()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <T extends Credit>
TcreateCredit(int initial_credits)
int
getMaxQueueSize()
int
getNumberOfQueuedMessages()
int
getNumberOfQueuings()
int
getQueuedMessagesTo(Address dest)
int
getQueuedSize()
protected java.lang.Object
handleDownMessage(Message msg)
boolean
isQueuingTo(Address dest)
protected void
sendCreditRequestsIfNeeded()
Checks the sent table: if some credits are in queueing mode and credits left are less than min_credits: send a credit requestUFC_NB
setMaxQueueSize(int s)
void
start()
This method is called on aJChannel.connect(String)
.void
stop()
This method is called on aJChannel.disconnect()
.-
Methods inherited from class org.jgroups.protocols.UFC
getAverageTimeBlocked, getCreditRequestHeader, getNumberOfBlockings, getReplenishHeader, getSenderCreditsFor, handleCredit, handleMulticastMessage, handleViewChange, printCredits, printSenderCredits, resetStats, unblock
-
Methods inherited from class org.jgroups.protocols.FlowControl
adjustCredit, bufferToLong, down, down, getMaxBlockTime, getMaxBlockTime, getMaxBlockTimes, getMaxCredits, getMinCredits, getMinThreshold, getNumberOfCreditRequestsReceived, getNumberOfCreditRequestsSent, getNumberOfCreditResponsesReceived, getNumberOfCreditResponsesSent, getReceiverCreditsFor, handleConfigEvent, handleCreditRequest, handleUpEvent, init, longToBuffer, maxBlockTime, maxCredits, printMap, printReceiverCredits, sendCredit, sendCreditRequest, setMaxBlockTime, setMaxBlockTimes, setMaxCredits, setMinCredits, setMinThreshold, up, up, up
-
Methods inherited from class org.jgroups.stack.Protocol
accept, afterCreationHook, destroy, enableStats, getConfigurableObjects, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getLog, getName, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getUpServices, getValue, isErgonomics, level, parse, providedDownServices, providedUpServices, requiredDownServices, requiredUpServices, resetStatistics, setDownProtocol, setErgonomics, setId, setLevel, setProtocolStack, setSocketFactory, setUpProtocol, setValue, statsEnabled
-
-
-
-
Field Detail
-
max_queue_size
protected int max_queue_size
-
send_function
protected final java.util.function.Consumer<Message> send_function
-
credit_send_task
protected java.util.concurrent.Future<?> credit_send_task
-
-
Method Detail
-
getMaxQueueSize
public int getMaxQueueSize()
-
setMaxQueueSize
public UFC_NB setMaxQueueSize(int s)
-
getNumberOfQueuedMessages
public int getNumberOfQueuedMessages()
-
getQueuedSize
public int getQueuedSize()
-
getNumberOfQueuings
public int getNumberOfQueuings()
-
isQueuingTo
public boolean isQueuingTo(Address dest)
-
getQueuedMessagesTo
public int getQueuedMessagesTo(Address dest)
-
start
public void start() throws java.lang.Exception
Description copied from class:Protocol
This method is called on aJChannel.connect(String)
. Starts work. Protocols are connected and queues are ready to receive events. Will be called from bottom to top. This call will replace the START and START_OK events.- Overrides:
start
in classFlowControl
- Throws:
java.lang.Exception
- Thrown if protocol cannot be started successfully. This will cause the ProtocolStack to fail, soJChannel.connect(String)
will throw an exception
-
stop
public void stop()
Description copied from class:Protocol
This method is called on aJChannel.disconnect()
. Stops work (e.g. by closing multicast socket). Will be called from top to bottom. This means that at the time of the method invocation the neighbor protocol below is still working. This method will replace the STOP, STOP_OK, CLEANUP and CLEANUP_OK events. The ProtocolStack guarantees that when this method is called all messages in the down queue will have been flushed
-
handleDownMessage
protected java.lang.Object handleDownMessage(Message msg)
- Overrides:
handleDownMessage
in classUFC
-
createCredit
protected <T extends Credit> T createCredit(int initial_credits)
- Overrides:
createCredit
in classUFC
-
sendCreditRequestsIfNeeded
protected void sendCreditRequestsIfNeeded()
Checks the sent table: if some credits are in queueing mode and credits left are less than min_credits: send a credit request
-
-