/*
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;
/**
CSData class
@mail milgra@milgra.com
@author Milan Toth
@version 20080316
Tasks of CSData
- pass back arguments of incoming invokes
**/
import com.milgra.server.api.Client;
import com.milgra.server.api.Wrapper;
import com.milgra.server.api.WrapperList;
import com.milgra.server.api.InvokeEvent;
import com.milgra.server.api.IApplication;
import com.milgra.server.api.EventListener;
public class CSData implements IModule
{
// tester client
public Client client;
/**
* CSData constructor
* @param applicationX application
*/
public CSData ( IApplication applicationX )
{
System.out.println( System.currentTimeMillis( ) + " CSConnection.construct " + applicationX );
}
/**
* Client entering point
* @param clientX client
* @param argumentsX arguments
*/
public void onEnter ( Client clientX , WrapperList argumentsX )
{
System.out.println( System.currentTimeMillis( ) + " CSConnection.onEnter " + clientX + " " + argumentsX );
// create
EventListener invokeListener = new EventListener ( )
{
public void onEvent ( InvokeEvent eventX ) { onInvoke( eventX ); }
};
// set
client = clientX;
// init
clientX.addInvokeEventListener( invokeListener );
clientX.accept( );
}
/**
* Closes module
**/
public void onLeave ( Client clientX )
{
System.out.println( System.currentTimeMillis( ) + " CSData.onClose " );
}
/**
* Incoming invoke
* @param eventX invoke event
*/
public void onInvoke ( InvokeEvent eventX )
{
System.out.println( System.currentTimeMillis( ) + " CSConnection.onInvoke " + eventX.id );
if ( eventX.id.equals( "emptyCall" ) ) client.call( "onEmptyCall" );
if ( eventX.id.equals( "nullCall" ) ) client.call( "onNullCall" , new Wrapper( ) );
if ( eventX.id.equals( "numberCall" ) ) client.call( "onNumberCall" , new Wrapper( eventX.arguments.getDouble( 0 ) ) );
if ( eventX.id.equals( "booleanCall" ) ) client.call( "onBooleanCall" , new Wrapper( eventX.arguments.getBoolean( 0 ) ) );
if ( eventX.id.equals( "stringCall" ) ) client.call( "onStringCall" , new Wrapper( eventX.arguments.getString( 0 ) ) );
if ( eventX.id.equals( "arrayCall" ) ) client.call( "onArrayCall" , new Wrapper( eventX.arguments.getList( 0 ) ) );
if ( eventX.id.equals( "objectCall" ) ) client.call( "onObjectCall" , new Wrapper( eventX.arguments.getMap( 0 ) ) );
if ( eventX.id.equals( "mixedCall" ) ) client.call( "onMixedCall" , new Wrapper( eventX.arguments.getMap( 0 ) ) );
if ( eventX.id.equals( "listenedCall" ) ) client.callResult( eventX.channel , new WrapperList( new Wrapper( eventX.arguments.getString( 0 ) ) ) );
}
}