/* * Copyright (c) 2003,2009 Declarative Engineering LLC. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Declarative Engineering LLC * verson 1 which accompanies this distribution, and is available at * http://declarativeengineering.com/legal/DE_Developer_License_v1.txt */ package com.foundation.tcv.controller; import com.common.util.*; public interface IThinServerController { public static final String BOUND_NAME = "ThinServerController"; //Identifiers used to send session data back to the client after registering.// public static final String SESSION_DATA_CLIENT_NUMBER = "clientNumber"; /** The license which is used by the client to validate that the server is authentic (not spoofing the application). */ public static final String SESSION_DATA_LICENSE = "license"; /** Not currently used. This may never be used. */ public static final String SESSION_DATA_CACHE_ALGORITHM = "cacheAlgorithm"; /** The version string identifying the version of the application browser to be used for this application. */ public static final String SESSION_DATA_REQUIRED_APPLICATION_BROWSER_VERSION = "requiredApplicationBrowserVersion"; /** The version string identifying the version of the application to be used. This refers to the application's installer versus the application browser's installer. */ public static final String SESSION_DATA_REQUIRED_APPLICATION_VERSION = "requiredApplicationVersion"; /** The data will be a list of String instances convertable to Address instances which can be used to download updates for the application. */ public static final String SESSION_DATA_DOWNLOAD_SERVERS = "downloadServers"; /** The data will be a list of String instances convertable to Address instances which can be used to run the application. */ public static final String SESSION_DATA_APPLICATION_SERVERS = "applicationServers"; /** Not currently used. */ public static final String SESSION_DATA_REDIRECT_ADDRESSES = "redirectAddresses"; /** Used to tell the client that it should connect to the given address (as a string) (in the same server farm) to start the application. */ public static final String SESSION_DATA_FORWARD_ADDRESS = "forwardAddress"; /** Provides the client with a session object reference. */ public static final String SESSION_DATA_SERVER_SESSION_CONTROLLER = "serverSessionController"; /** The version string identifying the future version of the application browser to be used for this application. */ public static final String SESSION_DATA_FUTURE_APPLICATION_BROWSER_VERSION = ""; /** The version string identifying the future version of the application to be used. This refers to the application's installer versus the application browser's installer. */ public static final String SESSION_DATA_FUTURE_APPLICATION_VERSION = ""; /** The compressed and serialized IList of ResourcePackages containing all resource package data from the server. The client must mix this with resource package data on the client. */ public static final String SESSION_DATA_RESOURCE_PACKAGE_DATA = "resourcePackageData"; /** The String[] containing jar name and jar hash pairs for required code resources. */ public static final String SESSION_DATA_CODE_DATA = "codeData"; //Identifiers used to send to the server when the client is registering.// /** The version of the application browser (string) that is trying to make the connection. */ public static final String REGISTRATION_APPLICATION_BROWSER_VERSION = "applicationBrowserVersion"; /** The version of the application (string) that is trying to make the connection. */ public static final String REGISTRATION_APPLICATION_VERSION = "applicationVersion"; /** The proxy to the client's controller that will manage the connection. */ public static final String REGISTRATION_CLIENT_CONTROLLER = "clientController"; /** The name of the application that the client is trying to connect to. */ public static final String REGISTRATION_APPLICATION_NAME = "applicationName"; /** * Gets the download size and the number of chunks. * @param version The version to be downloaded. This should currently always be the current version. * @return The total size of the download in bytes. */ public int getClientDownloadSize(String version); /** * Downloads the requested client version to the client. This method may not be supported in the future. * @param version The version to be downloaded. This should currently always be the current version. * @param previouslyDownloadedByteCount The number of bytes already on the client. * @return A series of bytes begining right after the last downloaded byte number. */ public byte[] getClientDownloadChunk(String version, int previouslyDownloadedByteCount); /** * Registers a client with the server. * @param registrationData A map of registration data. The map is used to allow changes to occur without preventing old clients from connecting and being told they require updating. See the REGISTRATION_ identifiers. * @return The map of session data, including: The client's unique id number that it must use when sending messages; signed license; session proxy or alternate server address; and/or client version change information; and the resource packages data. This may be null if the application is not being served. */ public LiteHashMap registerClient(IHashMap registrationData); }//IThinServerController//