/* 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.modules; /** CSLive class @mail milgra@milgra.com @author Milan Toth @version 20080316 Tasks of CSLive - enable/disable stream requests to test streaming/stream events **/ import com.milgra.server.api.Client; import com.milgra.server.api.InvokeEvent; import com.milgra.server.api.StreamEvent; import com.milgra.server.api.WrapperList; import com.milgra.server.api.IApplication; import com.milgra.server.api.EventListener; public class CSLive implements IModule { // testing client public Client client; /** * CSLive constructor * @param applicationX mother application */ public CSLive ( IApplication applicationX ) { } /** * Client entering point * @param clientX client * @param argumentsX arguments */ public void onEnter ( Client clientX , WrapperList argumentsX ) { System.out.println( System.currentTimeMillis( ) + " CSLive.onEnter " ); // create EventListener invokeListener = new EventListener ( ) { public void onEvent ( InvokeEvent eventX ) { onInvoke( eventX ); } }; // set client = clientX; // start client.addInvokeEventListener( invokeListener ); client.accept( ); } /** * Closes module **/ public void onLeave ( Client clientX ) { System.out.println( System.currentTimeMillis( ) + " CSLive.onClose " ); } /** * Invoke event listener * @param eventX event */ public void onInvoke ( InvokeEvent eventX ) { System.out.println( System.currentTimeMillis( ) + " CSLive.onInvoke " + eventX.id ); if ( eventX.id.equals( "addStreamListeners" ) ) { // adding stream event listener EventListener streamListener = new EventListener ( ) { public void onEvent ( StreamEvent event ) { onStreamEvent( event ); }; }; client.addStreamEventListener( streamListener ); } } /** * Stream event * @param eventX event */ public void onStreamEvent ( StreamEvent eventX ) { System.out.println( System.currentTimeMillis( ) + " CSLive.onStreamEvent " + eventX.stream.name ); if ( eventX.stream.name.equals( "disabled" ) ) eventX.stream.disable( ); if ( eventX.stream.name.equals( "enabled" ) ) eventX.stream.enable( ); } }