Package org.cometd.common
Class AbstractClientSession
java.lang.Object
org.cometd.common.AbstractClientSession
- All Implemented Interfaces:
ClientSession,org.cometd.bayeux.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.
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classAbstractClientSession.AbstractSessionChannelA channel scoped to aClientSession.Nested classes/interfaces inherited from interface org.cometd.bayeux.client.ClientSession
ClientSession.Extension, ClientSession.MessageListenerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainer -
Field Summary
Fields inherited from interface org.eclipse.jetty.util.component.Dumpable
KEY -
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractClientSession() -
Method Summary
Modifier and Type Method Description voidaddExtension(ClientSession.Extension extension)voidbatch(java.lang.Runnable batch)voiddump(java.lang.Appendable out, java.lang.String indent)booleanendBatch()protected voidextendIncoming(org.cometd.bayeux.Message.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise)protected voidextendOutgoing(org.cometd.bayeux.Message.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise)java.lang.ObjectgetAttribute(java.lang.String name)java.util.Set<java.lang.String>getAttributeNames()ClientSessionChannelgetChannel(java.lang.String channelName)ClientSessionChannelgetChannel(org.cometd.bayeux.ChannelId channelId)protected java.util.concurrent.ConcurrentMap<java.lang.String,AbstractClientSession.AbstractSessionChannel>getChannels()java.util.List<ClientSession.Extension>getExtensions()protected booleanisBatching()protected abstract AbstractClientSession.AbstractSessionChannelnewChannel(org.cometd.bayeux.ChannelId channelId)protected abstract org.cometd.bayeux.ChannelIdnewChannelId(java.lang.String channelId)protected org.cometd.bayeux.Message.MutablenewMessage()protected java.lang.StringnewMessageId()protected voidnotifyCallback(ClientSession.MessageListener callback, org.cometd.bayeux.Message.Mutable message)protected voidnotifyListeners(org.cometd.bayeux.Message.Mutable message)voidreceive(org.cometd.bayeux.Message.Mutable message, org.cometd.bayeux.Promise<java.lang.Void> promise)Receives a message (from the server) and process it.protected voidregisterCallback(java.lang.String messageId, ClientSession.MessageListener callback)protected voidregisterSubscriber(java.lang.String messageId, ClientSessionChannel.MessageListener subscriber)voidremoteCall(java.lang.String target, java.lang.Object data, ClientSession.MessageListener callback)java.lang.ObjectremoveAttribute(java.lang.String name)voidremoveExtension(ClientSession.Extension extension)protected voidresetSubscriptions()protected abstract voidsend(org.cometd.bayeux.Message.Mutable message)protected abstract voidsendBatch()voidsetAttribute(java.lang.String name, java.lang.Object value)voidstartBatch()protected ClientSession.MessageListenerunregisterCallback(java.lang.String messageId)protected ClientSessionChannel.MessageListenerunregisterSubscriber(java.lang.String messageId)Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.cometd.bayeux.client.ClientSession
disconnect, disconnect, handshake, handshake, handshakeMethods inherited from interface org.eclipse.jetty.util.component.Dumpable
dump, dumpSelfMethods inherited from interface org.cometd.bayeux.Session
getId, isConnected, isHandshook
-
Constructor Details
-
AbstractClientSession
protected AbstractClientSession()
-
-
Method Details
-
newMessageId
protected java.lang.String newMessageId() -
addExtension
- Specified by:
addExtensionin interfaceClientSession
-
removeExtension
- Specified by:
removeExtensionin interfaceClientSession
-
getExtensions
- Specified by:
getExtensionsin interfaceClientSession
-
extendOutgoing
protected void extendOutgoing(org.cometd.bayeux.Message.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise) -
extendIncoming
protected void extendIncoming(org.cometd.bayeux.Message.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise) -
newChannelId
protected abstract org.cometd.bayeux.ChannelId newChannelId(java.lang.String channelId) -
newChannel
protected abstract AbstractClientSession.AbstractSessionChannel newChannel(org.cometd.bayeux.ChannelId channelId) -
getChannel
- Specified by:
getChannelin interfaceClientSession
-
getChannel
-
getChannels
protected java.util.concurrent.ConcurrentMap<java.lang.String,AbstractClientSession.AbstractSessionChannel> getChannels() -
startBatch
public void startBatch()- Specified by:
startBatchin interfaceorg.cometd.bayeux.Session
-
sendBatch
protected abstract void sendBatch() -
endBatch
public boolean endBatch()- Specified by:
endBatchin interfaceorg.cometd.bayeux.Session
-
batch
public void batch(java.lang.Runnable batch)- Specified by:
batchin interfaceorg.cometd.bayeux.Session
-
isBatching
protected boolean isBatching() -
getAttribute
public java.lang.Object getAttribute(java.lang.String name)- Specified by:
getAttributein interfaceorg.cometd.bayeux.Session
-
getAttributeNames
public java.util.Set<java.lang.String> getAttributeNames()- Specified by:
getAttributeNamesin interfaceorg.cometd.bayeux.Session
-
removeAttribute
public java.lang.Object removeAttribute(java.lang.String name)- Specified by:
removeAttributein interfaceorg.cometd.bayeux.Session
-
setAttribute
public void setAttribute(java.lang.String name, java.lang.Object value)- Specified by:
setAttributein interfaceorg.cometd.bayeux.Session
-
remoteCall
public void remoteCall(java.lang.String target, java.lang.Object data, ClientSession.MessageListener callback)- Specified by:
remoteCallin interfaceClientSession
-
send
protected abstract void send(org.cometd.bayeux.Message.Mutable message) -
newMessage
protected org.cometd.bayeux.Message.Mutable newMessage() -
resetSubscriptions
protected void resetSubscriptions() -
receive
public void receive(org.cometd.bayeux.Message.Mutable message, org.cometd.bayeux.Promise<java.lang.Void> promise)Receives a message (from the server) and process it.
Processing the message involves calling the receive
extensionsand the channellisteners.- Parameters:
message- the message received.promise- the promise notified of the receive processing
-
notifyListeners
protected void notifyListeners(org.cometd.bayeux.Message.Mutable message) -
notifyCallback
protected void notifyCallback(ClientSession.MessageListener callback, org.cometd.bayeux.Message.Mutable message) -
registerCallback
protected void registerCallback(java.lang.String messageId, ClientSession.MessageListener callback) -
unregisterCallback
-
registerSubscriber
protected void registerSubscriber(java.lang.String messageId, ClientSessionChannel.MessageListener subscriber) -
unregisterSubscriber
-
dump
public void dump(java.lang.Appendable out, java.lang.String indent) throws java.io.IOException- Specified by:
dumpin interfaceorg.eclipse.jetty.util.component.Dumpable- Throws:
java.io.IOException
-