/* Milenia Grafter Server Copyright (c) 2007-2008 by Milan Toth. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package application; /** Application class @mail milgra@milgra.com @author Milan Toth @version 20080316 Tasks of Unit Tester Application - create and pass incoming clients to tester classes **/ import application.modules.*; import com.milgra.server.api.Client; import com.milgra.server.api.WrapperList; import com.milgra.server.api.IApplication; import java.util.HashMap; public class Application implements IApplication { // permament tv stream public HashMap < Client , IModule > clients; /** * Application constructor **/ public Application ( ) { System.out.println( System.currentTimeMillis( ) + " MilGra Unit Tester 1.0 " ); clients = new HashMap < Client , IModule > ( ); } public void onStart ( String nameX ) { } /** * Shutdown event **/ public void onClose ( ) { System.out.println( System.currentTimeMillis( ) + "MilGraUnit.onClose" ); } /** * Client entering point * @param clientX client * @param argumentsX arguments **/ public void onEnter ( Client clientX , WrapperList argumentsX ) { System.out.println( System.currentTimeMillis( ) + " MilGraUnit.onEnter " + clientX.getIp( ) + " " + argumentsX.getString( 0 ) ); if ( argumentsX.size( ) > 0 ) { if ( argumentsX.getString( 0 ).equals( "control" ) ) clientX.accept( ); if ( argumentsX.getString( 0 ).equals( "CSConnection" ) ) { CSConnection csConnection = new CSConnection( this ); csConnection.onEnter( clientX , argumentsX ); clients.put( clientX , csConnection ); } if ( argumentsX.getString( 0 ).equals( "CSData" ) ) { CSData csData = new CSData( this ); csData.onEnter( clientX , argumentsX ); clients.put( clientX , csData ); } if ( argumentsX.getString( 0 ).equals( "CSLive" ) ) { CSLive csLive = new CSLive( this ); csLive.onEnter( clientX , argumentsX ); clients.put( clientX , csLive ); } if ( argumentsX.getString( 0 ).equals( "CSRecorded" ) ) { CSRecorded csRecorded = new CSRecorded( this ); csRecorded.onEnter( clientX , argumentsX ); clients.put( clientX , csRecorded ); } if ( argumentsX.getString( 0 ).equals( "CSBandwidth" ) ) { CSBandwidth csBandwidth = new CSBandwidth( this ); csBandwidth.onEnter( clientX , argumentsX ); clients.put( clientX , csBandwidth ); } if ( argumentsX.getString( 0 ).equals( "Stress" ) ) { Stress stress = new Stress( this ); stress.onEnter( clientX , argumentsX ); clients.put( clientX , stress ); } if ( argumentsX.getString( 0 ).equals( "SSConnection" ) ) { SSConnection ssConnection = new SSConnection( this ); ssConnection.onEnter( clientX , argumentsX ); clients.put( clientX , ssConnection ); } if ( argumentsX.getString( 0 ).equals( "SSData" ) ) { SSData ssData = new SSData( this ); ssData.onEnter( clientX , argumentsX ); clients.put( clientX , ssData ); } if ( argumentsX.getString( 0 ).equals( "SSLive" ) ) { SSLive ssLive = new SSLive( this ); ssLive.onEnter( clientX , argumentsX ); clients.put( clientX , ssLive ); } if ( argumentsX.getString( 0 ).equals( "SSRecord" ) ) { CSRecorded csRecorded = new CSRecorded( this ); csRecorded.onEnter( clientX , argumentsX ); clients.put( clientX , csRecorded ); } if ( argumentsX.getString( 0 ).equals( "SSStress" ) ) { Stress ssStress = new Stress( this ); ssStress.onEnter( clientX , argumentsX ); clients.put( clientX , ssStress ); } if ( argumentsX.getString( 0 ).equals( "StreamControl" ) ) { StreamControl streamControl = new StreamControl( this ); streamControl.onEnter( clientX , argumentsX ); clients.put( clientX , streamControl ); } } } /** * Client leaving point * @param clientX client **/ public void onLeave ( Client clientX ) { System.out.println( System.currentTimeMillis( ) + " MilGraUnit.onLeave " + clientX.getIp( ) ); IModule module = clients.remove( clientX ); if ( module != null ) module.onLeave( clientX ); } }