Files
Brainstorm/Foundation TCV/src/com/foundation/tcv/controller/IThinServerController.java
2014-05-30 10:31:51 -07:00

72 lines
5.3 KiB
Java

/*
* 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//