com.sun.grizzly.cometd
Class DataHandler

java.lang.Object
  extended by com.sun.grizzly.cometd.DataHandler
All Implemented Interfaces:
CometHandler<Object[]>

public class DataHandler
extends Object
implements CometHandler<Object[]>

CometHandler used to support the meta channel Verb Connect and Reconnect. The DataHandler is holding the state of the long polled (Comet) connection.

Author:
Jeanfrancois Arcand, TAKAI, Naoto

Constructor Summary
DataHandler(String clientId, BayeuxParser bayeuxParser)
           
 
Method Summary
 void addChannel(String channel)
           
 void attach(Object[] reqRes)
          Attach an intance of E to this class.
 boolean containsChannel(String channel)
           
 Collection<String> getChannels()
           
 String getClientId()
           
 int getRemotePort()
           
 boolean isSuspended()
           
 void onEvent(CometEvent event)
          Receive CometEvent notification.
 void onInitialize(CometEvent event)
          Receive CometEvent notification when Grizzly is about to suspend the connection.
 void onInterrupt(CometEvent event)
          Receive CometEvent notification when the underlying tcp communication is resumed by Grizzly.
 void onTerminate(CometEvent event)
          Receive CometEvent notification when the response is resumed by a CometHandler or by the CometContext
 boolean removeChannel(String channel)
           
 void setSuspended(boolean isSuspended)
           
protected  void write(String s, CometdResponse res, boolean flush)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DataHandler

public DataHandler(String clientId,
                   BayeuxParser bayeuxParser)
Method Detail

write

protected void write(String s,
                     CometdResponse res,
                     boolean flush)
              throws IOException
Throws:
IOException

attach

public void attach(Object[] reqRes)
Description copied from interface: CometHandler
Attach an intance of E to this class.

Specified by:
attach in interface CometHandler<Object[]>

onEvent

public void onEvent(CometEvent event)
             throws IOException
Description copied from interface: CometHandler
Receive CometEvent notification. This method will be invoked everytime a CometContext.notify(java.lang.Object) is invoked. The CometEvent will contains the message that can be pushed back to the remote client, cached or ignored. This method can also be used to resume a connection once a notified by invoking CometContext.resumeCometHandler(com.sun.grizzly.comet.CometHandler).
its not optimal to flush outputstream in this method for long polling, flush is performed in each CometContext.resume call.
flushing multiple times can fragment the data into several tcp packets, that leads to extra IO and overhead in general due to client ack for each packet etc.

Specified by:
onEvent in interface CometHandler<Object[]>
Throws:
IOException

onInitialize

public void onInitialize(CometEvent event)
                  throws IOException
Description copied from interface: CometHandler
Receive CometEvent notification when Grizzly is about to suspend the connection. This method is always invoked during the processing of CometContext.addCometHandler(com.sun.grizzly.comet.CometHandler, boolean) operations.

Specified by:
onInitialize in interface CometHandler<Object[]>
Throws:
IOException

onTerminate

public void onTerminate(CometEvent event)
                 throws IOException
Description copied from interface: CometHandler
Receive CometEvent notification when the response is resumed by a CometHandler or by the CometContext

Specified by:
onTerminate in interface CometHandler<Object[]>
Throws:
IOException

onInterrupt

public void onInterrupt(CometEvent event)
                 throws IOException
Description copied from interface: CometHandler
Receive CometEvent notification when the underlying tcp communication is resumed by Grizzly. This happens when the CometContext.setExpirationDelay(long) expires or when the remote client close the connection.

Specified by:
onInterrupt in interface CometHandler<Object[]>
Throws:
IOException

getClientId

public String getClientId()

getChannels

public Collection<String> getChannels()

addChannel

public void addChannel(String channel)

containsChannel

public boolean containsChannel(String channel)

removeChannel

public boolean removeChannel(String channel)

isSuspended

public boolean isSuspended()

setSuspended

public void setSuspended(boolean isSuspended)

getRemotePort

public int getRemotePort()


Copyright © 2012 Oracle Corporation. All Rights Reserved.