org.zkoss.zkmax.ui.comet
Class CometServerPush

java.lang.Object
  extended by org.zkoss.zkmax.ui.comet.CometServerPush
All Implemented Interfaces:
ServerPush

public class CometServerPush
extends java.lang.Object
implements ServerPush

A server-push implementation that is based on comet.

Available in ZK EE

Since:
3.5.0
Author:
tomyeh

Constructor Summary
CometServerPush()
           
 
Method Summary
 boolean activate(long timeout)
          Activate the current thread (which must be a server-push thread).
 boolean deactivate(boolean stop)
          Deactvates the current thread (which must be a server-push thread).
 Desktop getDesktop()
          Returns the desktop that this server push belongs to (never null).
protected  java.lang.String getStartScript()
          Returns the JavaScript codes to enable (aka., start) the server push.
protected  java.lang.String getStopScript()
          Returns the JavaScript codes to disable (aka., stop) the server push.
 boolean isActive()
          Returns if the working thread of the server push is active.
 void onPiggyback()
          Called when Events.ON_PIGGYBACK is received.
 void setDelay(int min, int max, int factor)
          Deprecated.  
 void start(Desktop desktop)
          Starts the server push.
protected  void startClientPush()
          Sends an AU response to the client to start the server push.
 void stop()
          Stops the server push.
protected  void stopClientPush()
          Sends an AU response the client to stop the server push.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CometServerPush

public CometServerPush()
Method Detail

startClientPush

protected void startClientPush()
Sends an AU response to the client to start the server push. It is called by start(org.zkoss.zk.ui.Desktop).

The derived class usually overrides this method to support different devices, such as ZK Mobile.

The default implementation is to send AuScript containing the script returned by getStartScript(). Devices that don't support scripts could override this method to send a custom AU response (AuResponse).

Since:
3.6.1

stopClientPush

protected void stopClientPush()
Sends an AU response the client to stop the server push.

The derived class usually overrides this method to support different devices, such as ZK Mobile.

The default implementation is to send AuScript containing the script returned by getStopScript(). Devices that don't support scripts could override this method to send a custom AU response (AuResponse).

Since:
3.6.1

getStartScript

protected java.lang.String getStartScript()
Returns the JavaScript codes to enable (aka., start) the server push. It is called by startClientPush() to prepare the script of AuScript that will be sent to the client.


getStopScript

protected java.lang.String getStopScript()
Returns the JavaScript codes to disable (aka., stop) the server push. It is called by stopClientPush() to prepare the script of AuScript that will be sent to the client.


getDesktop

public Desktop getDesktop()
Returns the desktop that this server push belongs to (never null).


isActive

public boolean isActive()
Description copied from interface: ServerPush
Returns if the working thread of the server push is active. In other words, it is true if it is between Executions.activate(org.zkoss.zk.ui.Desktop) and Executions.deactivate(org.zkoss.zk.ui.Desktop).

Specified by:
isActive in interface ServerPush

start

public void start(Desktop desktop)
Starts the server push.

The derived class rarely need to override this method. Rather, override startClientPush().

Specified by:
start in interface ServerPush

stop

public void stop()
Stops the server push.

The derived class rarely need to override this method. Rather, override stopClientPush().

Specified by:
stop in interface ServerPush

setDelay

public void setDelay(int min,
                     int max,
                     int factor)
Deprecated. 

Specified by:
setDelay in interface ServerPush

onPiggyback

public void onPiggyback()
Description copied from interface: ServerPush
Called when Events.ON_PIGGYBACK is received. The invocation is passive (i.e., triggered by other events, rather than spontaneous).

This method is called in the context of an event listener. In other words, the execution is activated and you can retrieve it by Executions.getCurrent().

Specified by:
onPiggyback in interface ServerPush

activate

public boolean activate(long timeout)
                 throws java.lang.InterruptedException,
                        DesktopUnavailableException
Description copied from interface: ServerPush
Activate the current thread (which must be a server-push thread). It causes the current thread to wait until the desktop is available to access, the desktop no longer exists, some other thread interrupts this thread, or a certain amount of real time has elapsed.

The invoker of this method must invoke ServerPush.deactivate(boolean) in this finally clause.

Note: the activation is applied to the desktop that was assigned by ServerPush.start(org.zkoss.zk.ui.Desktop).

Unlike ServerPush.onPiggyback(), this method is NOT called in the context of an event listener. Rather, it is called in the thread of a server-push thread.

Specified by:
activate in interface ServerPush
Parameters:
timeout - the maximum time to wait in milliseconds. Ingored (i.e., never timeout) if non-positive.
Returns:
whether it is activated or it is timeout. The only reason it returns false is timeout.
Throws:
java.lang.InterruptedException - if it is interrupted by other thread
DesktopUnavailableException - if the desktop is removed (when activating).

deactivate

public boolean deactivate(boolean stop)
Description copied from interface: ServerPush
Deactvates the current thread (which must be a server-push thread).

Specified by:
deactivate in interface ServerPush
Parameters:
stop - whether to stop after deactivate
Returns:
true if it is stopped
See Also:
ServerPush.activate(long)


Copyright © 2005-2009 Potix Corporation. All Rights Reserved. SourceForge.net Logo