01: /* SessionCtrl.java
02:
03: {{IS_NOTE
04: Purpose:
05:
06: Description:
07:
08: History:
09: Fri Jun 3 15:08:34 2005, Created by tomyeh
10: }}IS_NOTE
11:
12: Copyright (C) 2005 Potix Corporation. All Rights Reserved.
13:
14: {{IS_RIGHT
15: This program is distributed under GPL Version 2.0 in the hope that
16: it will be useful, but WITHOUT ANY WARRANTY.
17: }}IS_RIGHT
18: */
19: package org.zkoss.zk.ui.sys;
20:
21: import org.zkoss.zk.ui.Desktop;
22: import org.zkoss.zk.ui.ComponentNotFoundException;
23:
24: /**
25: * Additional interface of {@link org.zkoss.zk.ui.Session} for implementation.
26: * <p>Note: applications shall never access this interface.
27: *
28: * @author tomyeh
29: */
30: public interface SessionCtrl {
31: /** Sets the device type that this session belongs to.
32: *
33: * <p>It is called by the desktop when {@link Desktop#setDeviceType}
34: * is called.
35: * Don't call this method directly. Otherwise, the result is inpredictable.
36: *
37: * @since 2.4.1
38: */
39: public void setDeviceType(String deviceType);
40:
41: /** Returns the desktop cache, or null if not available.
42: *
43: * <p>Note: this is an utility to implement {@link DesktopCacheProvider},
44: * which might or might not use this method. Other part of ZK shall not
45: * access this method.
46: */
47: public DesktopCache getDesktopCache();
48:
49: /** Sets the desktop cache.
50: *
51: * <p>Note: this is an utility to implement {@link DesktopCacheProvider},
52: * which might or might not use this method. Other part of ZK shall not
53: * access this method.
54: *
55: * @param cache the desktop cache; null to denote no cache available.
56: */
57: public void setDesktopCache(DesktopCache cache);
58:
59: /** Called when the session is destroyed.
60: * <p>Application shall never access this method.
61: */
62: public void onDestroyed();
63:
64: /** Called when ZK detects {@link org.zkoss.zk.ui.Session#getNativeSession}
65: * is not initialized properly.
66: *
67: * <p>It is actually a workaround to solve the issue that some Web
68: * contrainer fails to call
69: * HttpSessionActivationListener.sessionDidActivate() unpon failover.
70: */
71: public void recover(Object nativeSession);
72:
73: /** Returns whether this session is invalidated
74: * (i.e., {@link org.zkoss.zk.ui.Session#invalidate} was called).
75: */
76: public boolean isInvalidated();
77:
78: /** Really invalidates the session.
79: * <p>Application shall never access this method.
80: */
81: public void invalidateNow();
82:
83: /** Returns a sequence of UUID for {@link DesktopCtrl#getNextUuid}
84: * to generate component UUID.
85: *
86: * @param groupSize how many number of UUID the caller wants.
87: */
88: public int getNextUuidGroup(int groupSize);
89:
90: /** Notifies the session that a client request is received.
91: *
92: * @param keepAlive if the request will keep the session alive,
93: * or the request shall be ignored.
94: * If the request shall be ignored and the session is timeout,
95: * it will cause the session to expire (i.e., be invalidated).
96: * @since 3.0.0
97: */
98: public void notifyClientRequest(boolean keepAlive);
99: }
|