@NotThreadSafe public abstract class AbstractClientConnection<T extends BackendInfo> extends Object
Modifier and Type | Field and Description |
---|---|
static long |
DEFAULT_BACKEND_ALIVE_TIMEOUT_NANOS
Backend aliveness timer.
|
static long |
DEFAULT_NO_PROGRESS_TIMEOUT_NANOS
No progress timeout.
|
static long |
DEFAULT_REQUEST_TIMEOUT_NANOS
Request timeout.
|
Modifier and Type | Method and Description |
---|---|
ClientActorContext |
context() |
Long |
cookie() |
long |
currentTime() |
void |
enqueueEntry(ConnectionEntry entry,
long now)
Enqueue an entry, possibly also transmitting it.
|
void |
enqueueRequest(Request<?,?> request,
Consumer<Response<?,?>> callback,
long enqueuedTicks)
Send a request to the backend and invoke a specified callback when it finishes.
|
abstract Optional<T> |
getBackendInfo() |
akka.actor.ActorRef |
localActor() |
void |
sendRequest(Request<?,?> request,
Consumer<Response<?,?>> callback)
Send a request to the backend and invoke a specified callback when it finishes.
|
String |
toString() |
public static final long DEFAULT_BACKEND_ALIVE_TIMEOUT_NANOS
public static final long DEFAULT_REQUEST_TIMEOUT_NANOS
public static final long DEFAULT_NO_PROGRESS_TIMEOUT_NANOS
public final ClientActorContext context()
public final akka.actor.ActorRef localActor()
public final long currentTime()
public final void sendRequest(Request<?,?> request, Consumer<Response<?,?>> callback)
This method may put the caller thread to sleep in order to throttle the request rate. The callback may be called before the sleep finishes.
request
- Request to sendcallback
- Callback to invokepublic final void enqueueRequest(Request<?,?> request, Consumer<Response<?,?>> callback, long enqueuedTicks)
Note that unlike sendRequest(Request, Consumer)
, this method does not exert backpressure, hence it
should never be called from an application thread.
request
- Request to sendcallback
- Callback to invokeenqueuedTicks
- Time (according to currentTime()
of request enqueuepublic final void enqueueEntry(ConnectionEntry entry, long now)
Copyright © 2019 OpenDaylight. All rights reserved.