ClientSession
, Session
, org.eclipse.jetty.util.component.Dumpable
public abstract class AbstractClientSession extends java.lang.Object implements ClientSession, org.eclipse.jetty.util.component.Dumpable
Partial implementation of ClientSession
.
It handles extensions and batching, and provides utility methods to be used by subclasses.
Modifier and Type | Class | Description |
---|---|---|
protected class |
AbstractClientSession.AbstractSessionChannel |
A channel scoped to a
ClientSession . |
ClientSession.Extension, ClientSession.MessageListener
Modifier | Constructor | Description |
---|---|---|
protected |
AbstractClientSession() |
Modifier and Type | Method | Description |
---|---|---|
void |
addExtension(ClientSession.Extension extension) |
|
void |
batch(java.lang.Runnable batch) |
|
java.lang.String |
dump() |
|
void |
dump(java.lang.Appendable out,
java.lang.String indent) |
|
boolean |
endBatch() |
|
protected void |
extendIncoming(Message.Mutable message,
Promise<java.lang.Boolean> promise) |
|
protected void |
extendOutgoing(Message.Mutable message,
Promise<java.lang.Boolean> promise) |
|
protected boolean |
extendRcv(Message.Mutable message) |
|
protected boolean |
extendSend(Message.Mutable message) |
|
java.lang.Object |
getAttribute(java.lang.String name) |
|
java.util.Set<java.lang.String> |
getAttributeNames() |
|
ClientSessionChannel |
getChannel(java.lang.String channelName) |
|
ClientSessionChannel |
getChannel(ChannelId channelId) |
|
protected java.util.concurrent.ConcurrentMap<java.lang.String,AbstractClientSession.AbstractSessionChannel> |
getChannels() |
|
java.util.List<ClientSession.Extension> |
getExtensions() |
|
protected boolean |
isBatching() |
|
protected abstract AbstractClientSession.AbstractSessionChannel |
newChannel(ChannelId channelId) |
|
protected abstract ChannelId |
newChannelId(java.lang.String channelId) |
|
protected Message.Mutable |
newMessage() |
|
protected java.lang.String |
newMessageId() |
|
protected void |
notifyCallback(ClientSession.MessageListener callback,
Message.Mutable message) |
|
protected void |
notifyListeners(Message.Mutable message) |
|
void |
receive(Message.Mutable message,
Promise<java.lang.Void> promise) |
Receives a message (from the server) and process it.
|
protected void |
registerCallback(java.lang.String messageId,
ClientSession.MessageListener callback) |
|
protected void |
registerSubscriber(java.lang.String messageId,
ClientSessionChannel.MessageListener subscriber) |
|
void |
remoteCall(java.lang.String target,
java.lang.Object data,
ClientSession.MessageListener callback) |
|
java.lang.Object |
removeAttribute(java.lang.String name) |
|
void |
removeExtension(ClientSession.Extension extension) |
|
protected void |
resetSubscriptions() |
|
protected abstract void |
send(Message.Mutable message) |
|
protected abstract void |
sendBatch() |
|
void |
setAttribute(java.lang.String name,
java.lang.Object value) |
|
void |
startBatch() |
|
protected ClientSession.MessageListener |
unregisterCallback(java.lang.String messageId) |
|
protected ClientSessionChannel.MessageListener |
unregisterSubscriber(java.lang.String messageId) |
disconnect, disconnect, disconnect, handshake, handshake, handshake, handshake
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getId, isConnected, isHandshook
protected java.lang.String newMessageId()
public void addExtension(ClientSession.Extension extension)
addExtension
in interface ClientSession
public void removeExtension(ClientSession.Extension extension)
removeExtension
in interface ClientSession
public java.util.List<ClientSession.Extension> getExtensions()
getExtensions
in interface ClientSession
protected void extendOutgoing(Message.Mutable message, Promise<java.lang.Boolean> promise)
protected boolean extendSend(Message.Mutable message)
protected void extendIncoming(Message.Mutable message, Promise<java.lang.Boolean> promise)
protected boolean extendRcv(Message.Mutable message)
protected abstract ChannelId newChannelId(java.lang.String channelId)
protected abstract AbstractClientSession.AbstractSessionChannel newChannel(ChannelId channelId)
public ClientSessionChannel getChannel(java.lang.String channelName)
getChannel
in interface ClientSession
public ClientSessionChannel getChannel(ChannelId channelId)
protected java.util.concurrent.ConcurrentMap<java.lang.String,AbstractClientSession.AbstractSessionChannel> getChannels()
public void startBatch()
startBatch
in interface Session
protected abstract void sendBatch()
protected boolean isBatching()
public java.lang.Object getAttribute(java.lang.String name)
getAttribute
in interface Session
public java.util.Set<java.lang.String> getAttributeNames()
getAttributeNames
in interface Session
public java.lang.Object removeAttribute(java.lang.String name)
removeAttribute
in interface Session
public void setAttribute(java.lang.String name, java.lang.Object value)
setAttribute
in interface Session
public void remoteCall(java.lang.String target, java.lang.Object data, ClientSession.MessageListener callback)
remoteCall
in interface ClientSession
protected abstract void send(Message.Mutable message)
protected Message.Mutable newMessage()
protected void resetSubscriptions()
public void receive(Message.Mutable message, Promise<java.lang.Void> promise)
Receives a message (from the server) and process it.
Processing the message involves calling the receive extensions
and the channel listeners
.
message
- the message received.promise
- the promise notified of the receive processingprotected void notifyListeners(Message.Mutable message)
protected void notifyCallback(ClientSession.MessageListener callback, Message.Mutable message)
protected void registerCallback(java.lang.String messageId, ClientSession.MessageListener callback)
protected ClientSession.MessageListener unregisterCallback(java.lang.String messageId)
protected void registerSubscriber(java.lang.String messageId, ClientSessionChannel.MessageListener subscriber)
protected ClientSessionChannel.MessageListener unregisterSubscriber(java.lang.String messageId)
public java.lang.String dump()
dump
in interface org.eclipse.jetty.util.component.Dumpable
public void dump(java.lang.Appendable out, java.lang.String indent) throws java.io.IOException
dump
in interface org.eclipse.jetty.util.component.Dumpable
java.io.IOException
Copyright © 2008–2017 The CometD Project. All rights reserved.