akka.remote.transport
Class ThrottlerHandle

java.lang.Object
  extended by akka.remote.transport.AbstractTransportAdapterHandle
      extended by akka.remote.transport.ThrottlerHandle
All Implemented Interfaces:
AssociationHandle, SchemeAugmenter, java.io.Serializable, scala.Equals, scala.Product

public class ThrottlerHandle
extends AbstractTransportAdapterHandle
implements scala.Product, scala.Serializable

INTERNAL API

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface akka.remote.transport.AssociationHandle
AssociationHandle.ActorHandleEventListener, AssociationHandle.ActorHandleEventListener$, AssociationHandle.Disassociated, AssociationHandle.Disassociated$, AssociationHandle.DisassociateInfo, AssociationHandle.HandleEvent, AssociationHandle.HandleEventListener, AssociationHandle.InboundPayload, AssociationHandle.InboundPayload$, AssociationHandle.Quarantined$, AssociationHandle.Shutdown$, AssociationHandle.Unknown$
 
Constructor Summary
ThrottlerHandle(AssociationHandle _wrappedHandle, ActorRef throttlerActor)
           
 
Method Summary
 AssociationHandle _wrappedHandle()
           
 void disassociate()
          Closes the underlying transport link, if needed.
 void disassociateWithFailure(AssociationHandle.DisassociateInfo reason)
           
 java.util.concurrent.atomic.AtomicReference<ThrottlerTransportAdapter.ThrottleMode> outboundThrottleMode()
           
 scala.concurrent.Promise<AssociationHandle.HandleEventListener> readHandlerPromise()
          The Promise returned by this call must be completed with an AssociationHandle.HandleEventListener to register a listener responsible for handling incoming payload.
 ActorRef throttlerActor()
           
 boolean write(ByteString payload)
          Asynchronously sends the specified payload to the remote endpoint.
 
Methods inherited from class akka.remote.transport.AbstractTransportAdapterHandle
addedSchemeIdentifier, localAddress, originalLocalAddress, originalRemoteAddress, remoteAddress, wrappedHandle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface scala.Product
productArity, productElement, productIterator, productPrefix
 
Methods inherited from interface scala.Equals
canEqual, equals
 
Methods inherited from interface akka.remote.transport.SchemeAugmenter
augmentScheme, augmentScheme, removeScheme, removeScheme
 

Constructor Detail

ThrottlerHandle

public ThrottlerHandle(AssociationHandle _wrappedHandle,
                       ActorRef throttlerActor)
Method Detail

_wrappedHandle

public AssociationHandle _wrappedHandle()

throttlerActor

public ActorRef throttlerActor()

outboundThrottleMode

public java.util.concurrent.atomic.AtomicReference<ThrottlerTransportAdapter.ThrottleMode> outboundThrottleMode()

readHandlerPromise

public scala.concurrent.Promise<AssociationHandle.HandleEventListener> readHandlerPromise()
Description copied from interface: AssociationHandle
The Promise returned by this call must be completed with an AssociationHandle.HandleEventListener to register a listener responsible for handling incoming payload. Until the listener is not registered the transport SHOULD buffer incoming messages.

Specified by:
readHandlerPromise in interface AssociationHandle
Returns:
Promise that must be completed with the listener responsible for handling incoming data.

write

public boolean write(ByteString payload)
Description copied from interface: AssociationHandle
Asynchronously sends the specified payload to the remote endpoint. This method MUST be thread-safe as it might be called from different threads. This method MUST NOT block.

Writes guarantee ordering of messages, but not their reception. The call to write returns with a Boolean indicating if the channel was ready for writes or not. A return value of false indicates that the channel is not yet ready for delivery (e.g.: the write buffer is full) and the sender needs to wait until the channel becomes ready again. Returning false also means that the current write was dropped (this MUST be guaranteed to ensure duplication-free delivery).

Specified by:
write in interface AssociationHandle
Parameters:
payload - The payload to be delivered to the remote endpoint.
Returns:
Boolean indicating the availability of the association for subsequent writes.

disassociate

public void disassociate()
Description copied from interface: AssociationHandle
Closes the underlying transport link, if needed. Some transports might not need an explicit teardown (UDP) and some transports may not support it (hardware connections). Remote endpoint of the channel or connection MAY be notified, but this is not guaranteed. The Transport that provides the handle MUST guarantee that disassociate() could be called arbitrarily many times.

Specified by:
disassociate in interface AssociationHandle

disassociateWithFailure

public void disassociateWithFailure(AssociationHandle.DisassociateInfo reason)