X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsamples%2Fclustersession%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fclustersession%2Fservice%2FClusterSessionService.java;fp=opendaylight%2Fsamples%2Fclustersession%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fclustersession%2Fservice%2FClusterSessionService.java;h=9991b33f80e7ecc58970cb334b6a22efa9c7d765;hp=0000000000000000000000000000000000000000;hb=bb8e483729cee2950c8394751e21f87812aec48d;hpb=f2a95080b262418d109d7f1151cf3d9d3aae6237;ds=sidebyside diff --git a/opendaylight/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/service/ClusterSessionService.java b/opendaylight/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/service/ClusterSessionService.java new file mode 100644 index 0000000000..9991b33f80 --- /dev/null +++ b/opendaylight/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/service/ClusterSessionService.java @@ -0,0 +1,84 @@ +package org.opendaylight.controller.clustersession.service; + +import java.util.HashMap; + +import org.apache.catalina.Session; +import org.apache.catalina.util.SessionIdGenerator; +import org.opendaylight.controller.clustersession.ClusterSession; + +/** + * A service to handle session persistence and retrieval in any data store + * + * @author harman singh + * + */ +public interface ClusterSessionService { + + /** + * This method performs all startup operations + */ + void startInternal(SessionIdGenerator sessionIdGenerator); + + /** + * Method to perform all clean up operations + */ + void stopInternal(); + + /** + * Find Session object based on provided session id from persistance + * @param id + * @return an instance of Session + */ + Session findSession(final String id); + + /** + * Get an array of session objects available in storage + */ + Session[] findSessions(); + + /** + * Remove a session object from persistence + * @param id of session object need to be removed + */ + void removeSession(final String id); + + /** + * Expire and remove a session object from persistence + * @param id of session object need to be expired + */ + void expireSession(final String id); + + /** + * Create a session object based on session id, if session is not present + * use random session id + * @param sessionId + * @return an instance of Session + */ + Session createSession(final String sessionId); + + /** + * Add a session object in persistence + * @param session an instance of ClusterSession + */ + void addSession(final ClusterSession session); + + /** + * Create an empty Session object + * @return session object + */ + Session createEmptySession(); + + /** + * Fetch attributes of Session object fetched by supplied session id + * @param sessionId + * @return + */ + HashMap getSession(String sessionId); + + /** + * update the session object in persistence + * @param session + */ + void updateSession(final ClusterSession session); + +}