org.mortbay.cometd
Class AbstractBayeux

java.lang.Object
  extended by org.mortbay.cometd.AbstractBayeux
All Implemented Interfaces:
Bayeux
Direct Known Subclasses:
ContinuationBayeux

public abstract class AbstractBayeux
extends Object
implements Bayeux

Author:
gregw, aabeling: added JSONP transport

Nested Class Summary
static class AbstractBayeux.DefaultPolicy
           
 
Field Summary
static ChannelId META_CLIENT_ID
           
static ChannelId META_CONNECT_ID
           
static ChannelId META_DISCONNECT_ID
           
static ChannelId META_HANDSHAKE_ID
           
static ChannelId META_ID
           
static ChannelId META_PING_ID
           
static ChannelId META_RECONNECT_ID
           
static ChannelId META_STATUS_ID
           
static ChannelId META_SUBSCRIBE_ID
           
static ChannelId META_UNSUBSCRIBE_ID
           
static JSON.Literal TRANSPORTS
           
 
Fields inherited from interface dojox.cometd.Bayeux
ADVICE_FIELD, CHANNEL_FIELD, CLIENT_FIELD, DATA_FIELD, DOJOX_COMETD_BAYEUX, ERROR_FIELD, EXT_FIELD, ID_FIELD, META, META_CLIENT, META_CONNECT, META_DISCONNECT, META_HANDSHAKE, META_PING, META_RECONNECT, META_SLASH, META_STATUS, META_SUBSCRIBE, META_UNSUBSCRIBE, SERVICE, SERVICE_SLASH, SUBSCRIPTION_FIELD, SUCCESSFUL_FIELD, TIMESTAMP_FIELD, TRANSPORT_FIELD
 
Constructor Summary
protected AbstractBayeux()
           
 
Method Summary
 void addFilter(String channels, DataFilter filter)
           
 void deliver(Client fromClient, Client toClient, String toChannel, Map<String,Object> message)
          Deliver a message to a client.
 Object getAdvice()
           
 ChannelImpl getChannel(ChannelId id)
           
 ChannelImpl getChannel(String id)
           
 Channel getChannel(String id, boolean create)
           
 ChannelId getChannelId(String id)
           
 Client getClient(String client_id)
           
 Set getClientIDs()
           
 long getClientTimeoutMs()
           
 int getLogLevel()
           
 int getMultiFrameInterval()
           
 long getRandom(long variation)
           
 SecurityPolicy getSecurityPolicy()
           
 String getTimeOnServer()
           
 String handle(ClientImpl client, Transport transport, Map<String,Object> message)
          Handle a Bayeux message.
 boolean hasChannel(String id)
           
protected  void initialize(ServletContext context)
           
 boolean isInitialized()
           
 boolean isJSONCommented()
           
 boolean isLogDebug()
           
 boolean isLogInfo()
           
 void logDebug(String message)
           
 void logDebug(String message, Throwable th)
           
 void logInfo(String message)
           
 void logWarn(String message)
           
 void logWarn(String message, Throwable th)
           
 Client newClient(String idPrefix, Listener listener)
           
abstract  ClientImpl newRemoteClient()
           
 Transport newTransport(ClientImpl client, Map message)
          Create new transport object for a bayeux message
 void publish(ChannelId to, Client from, Object data, String msgId)
           
 void publish(Client fromClient, String toChannelId, Object data, String msgId)
          Deliver data to a channel.
 boolean removeChannel(ChannelId channelId)
           
 void removeFilter(String channels, DataFilter filter)
           
 void setAdvice(Object advice)
           
 void setClientTimeoutMs(long ms)
           
 void setJSONCommented(boolean commented)
           
 void setLogLevel(int logLevel)
           
 void setMultiFrameInterval(int multiFrameInterval)
          The time a client should delay between reconnects when multiple connections from the same browser are detected.
 void setSecurityPolicy(SecurityPolicy securityPolicy)
           
 void subscribe(String toChannel, Client subscriber)
          Subscribe to a channel.
 void unsubscribe(String toChannel, Client subscriber)
          Unsubscribe to a channel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

META_ID

public static final ChannelId META_ID

META_CONNECT_ID

public static final ChannelId META_CONNECT_ID

META_CLIENT_ID

public static final ChannelId META_CLIENT_ID

META_DISCONNECT_ID

public static final ChannelId META_DISCONNECT_ID

META_HANDSHAKE_ID

public static final ChannelId META_HANDSHAKE_ID

META_PING_ID

public static final ChannelId META_PING_ID

META_RECONNECT_ID

public static final ChannelId META_RECONNECT_ID

META_STATUS_ID

public static final ChannelId META_STATUS_ID

META_SUBSCRIBE_ID

public static final ChannelId META_SUBSCRIBE_ID

META_UNSUBSCRIBE_ID

public static final ChannelId META_UNSUBSCRIBE_ID

TRANSPORTS

public static final JSON.Literal TRANSPORTS
Constructor Detail

AbstractBayeux

protected AbstractBayeux()
Parameters:
context. - The logLevel init parameter is used to set the logging to 0=none, 1=info, 2=debug
Method Detail

addFilter

public void addFilter(String channels,
                      DataFilter filter)
Specified by:
addFilter in interface Bayeux
Parameters:
channels - A ChannelId
filter - The filter instance to apply to new channels matching the pattern

removeFilter

public void removeFilter(String channels,
                         DataFilter filter)
Specified by:
removeFilter in interface Bayeux

getChannel

public ChannelImpl getChannel(ChannelId id)
Parameters:
id -
Returns:

getChannel

public ChannelImpl getChannel(String id)

getChannel

public Channel getChannel(String id,
                          boolean create)
Specified by:
getChannel in interface Bayeux

getChannelId

public ChannelId getChannelId(String id)

getClient

public Client getClient(String client_id)
Specified by:
getClient in interface Bayeux
Returns:

getClientIDs

public Set getClientIDs()

getClientTimeoutMs

public long getClientTimeoutMs()

getLogLevel

public int getLogLevel()
Returns:
the logLevel. 0=none, 1=info, 2=debug

getSecurityPolicy

public SecurityPolicy getSecurityPolicy()
Specified by:
getSecurityPolicy in interface Bayeux

handle

public String handle(ClientImpl client,
                     Transport transport,
                     Map<String,Object> message)
              throws IOException
Handle a Bayeux message. This is normally only called by the bayeux servlet or a test harness.

Parameters:
client - The client if known
transport - The transport to use for the message
message - The bayeux message.
Throws:
IOException

hasChannel

public boolean hasChannel(String id)
Specified by:
hasChannel in interface Bayeux

isInitialized

public boolean isInitialized()

isJSONCommented

public boolean isJSONCommented()
Returns:
the commented

isLogDebug

public boolean isLogDebug()

isLogInfo

public boolean isLogInfo()

logDebug

public void logDebug(String message)

logDebug

public void logDebug(String message,
                     Throwable th)

logWarn

public void logWarn(String message,
                    Throwable th)

logWarn

public void logWarn(String message)

logInfo

public void logInfo(String message)

newClient

public Client newClient(String idPrefix,
                        Listener listener)
Specified by:
newClient in interface Bayeux
Returns:

newRemoteClient

public abstract ClientImpl newRemoteClient()

newTransport

public Transport newTransport(ClientImpl client,
                              Map message)
Create new transport object for a bayeux message

Parameters:
client - The client
message - the bayeux message
Returns:
the negotiated transport.

publish

public void publish(ChannelId to,
                    Client from,
                    Object data,
                    String msgId)

publish

public void publish(Client fromClient,
                    String toChannelId,
                    Object data,
                    String msgId)
Description copied from interface: Bayeux
Deliver data to a channel.

Specified by:
publish in interface Bayeux
Parameters:
fromClient - The client sending the data
toChannelId - The Channel ID to which the data is targetted
data - The data itself which must be an Object that can be encoded with JSON.
msgId - optional message ID or null for automatic generation of a message ID.

deliver

public void deliver(Client fromClient,
                    Client toClient,
                    String toChannel,
                    Map<String,Object> message)
Description copied from interface: Bayeux
Deliver a message to a client.

Specified by:
deliver in interface Bayeux

removeChannel

public boolean removeChannel(ChannelId channelId)

setClientTimeoutMs

public void setClientTimeoutMs(long ms)

setJSONCommented

public void setJSONCommented(boolean commented)
Parameters:
commented - the commented to set

setLogLevel

public void setLogLevel(int logLevel)
Parameters:
logLevel - the logLevel: 0=none, 1=info, 2=debug

setSecurityPolicy

public void setSecurityPolicy(SecurityPolicy securityPolicy)
Specified by:
setSecurityPolicy in interface Bayeux

subscribe

public void subscribe(String toChannel,
                      Client subscriber)
Description copied from interface: Bayeux
Subscribe to a channel. Equivalent to getChannel(toChannel).subscribe(subscriber).

Specified by:
subscribe in interface Bayeux

unsubscribe

public void unsubscribe(String toChannel,
                        Client subscriber)
Description copied from interface: Bayeux
Unsubscribe to a channel

Specified by:
unsubscribe in interface Bayeux

getMultiFrameInterval

public int getMultiFrameInterval()
Returns:
the multiFrameInterval in milliseconds

setMultiFrameInterval

public void setMultiFrameInterval(int multiFrameInterval)
The time a client should delay between reconnects when multiple connections from the same browser are detected. This effectively produces traditional polling.

Parameters:
multiFrameInterval - the multiFrameInterval to set

getAdvice

public Object getAdvice()

setAdvice

public void setAdvice(Object advice)

initialize

protected void initialize(ServletContext context)

getRandom

public long getRandom(long variation)

getTimeOnServer

public String getTimeOnServer()
Returns:


Copyright © 2007 Mort Bay Consulting. All Rights Reserved.