/*
* Copyright (c) 2006 Manuel Traut and Volker Dahnke
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors: Manuel Traut and Volker Dahnke
*/
package YalpServer;
import YalpInterfaces.*;
import java.net.*;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Properties;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
/*
* Class ServerControlImpl
*
* Implements functionality of the ServerControl Interface
*
* @author Volker Dahnke / Manuel Traut
* @version 0.6 14-12-2005
* @see client
*/
public class ServerControlImpl extends ServerControlInterfacePOA {
private ORB orb;
private InitServer srv;
private InputPluginHandler inputHandler;
private String log4jFile = "log4j_server.conf";
private static Logger logger =
Logger.getLogger("Yalp.Server.ServerControlImpl");
public ServerControlImpl() {
PropertyConfigurator.configureAndWatch(log4jFile);
logger.debug("ServerControlImpl()");
}
public void setORB(ORB _orb) {
logger.debug("setOrb()");
orb = _orb;
}
public void init(InitServer _srv) {
logger.debug("init()");
srv = _srv;
inputHandler = srv.inputHandler;
}
/*
* client logon
*
* @param userName
* @param password
* @param ipAdress
* @param session (out)
* @param error (out)
*/
public void clientLogon( String userName,
String password,
String ipAdress,
SessionHolder session,
YalpErrorHolder err )
{
logger.debug("clientLogon()");
/* t.b.d. session managmnet */
try {
System.out.println("logon: "+userName+" - "+ipAdress);
session.value = new Session();
session.value.id = 666;
session.value.me = new YalpUser();
session.value.me.id = 333;
session.value.me.name = userName;
session.value.me.realName = "huhu";
session.value.me.level = AccessRights.ADMIN;
session.value.ip = "127.0.0.1";
session.value.availablePlugins = new PluginInfo[0];
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
error.descr = "no error";
error.level = YalpErrorLevel.ERROR_LEVEL_DEBUG;
error.msg = "";
err.value = error;
} catch (Exception e) {
System.out.println(e.toString());
}
System.out.println("t.b.d. clientLogon nothing implemented at the moment");
}
/*
* client logoff
*
* @param session
* @param error (out)
*/
public void clientLogoff( Session bye, YalpErrorHolder err) {
logger.debug("clientLogoff");
// srv.remClient( bye.ip, bye.me.name );
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* get user list
*
* @param user list (out)
* @param error (out)
*/
public void getUser(UsersHolder list, YalpErrorHolder err) {
logger.debug("getUser()");
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* change user details
*
* @param user
* @param password
* @param action (create, delete, alter)
* @param error (out)
*/
public void changeUser(YalpUser usr, String passwd, Action todo,
YalpErrorHolder err) {
logger.debug("changeUser()");
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* alter media informations
*
* @param media to change
* @param action (update, delete, create)
* @param error (out)
*/
public void changeMedia( Media toChange, Action todo, YalpErrorHolder err ) {
logger.debug("changeMedia()");
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* count yalp medias
*
* @param num (out)
* @param error (out)
*/
public void getNumOfMedias( IntHolder num, YalpErrorHolder err ) {
logger.debug("getNumOfMedias()");
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* control yalp medias
*
* @param control description (inout)
* @param error (out)
*/
public void control( OutputHolder ctlOutput, YalpErrorHolder err ) {
logger.debug("control()");
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* search yalp media
*
* @param search string
* @param list of mediatypes
* @param result as list of medias (out)
*/
public void search( String str, MediaType[] types, MediasHolder result,
YalpErrorHolder err ) {
logger.debug("search()");
YalpError error = new YalpError();
inputHandler.search(str, types, result, err);
}
/*
* register new output plugin
*
* @param plugin which should be registered
* @param error
*/
public void registerOutputPlugin( OutputPluginInterface itf,
PluginInfoHolder info, YalpErrorHolder err )
{
logger.debug("registerOutputPlugin()");
/* t.b.d. itf handling */
System.out.println("registering output plugin: " + info.value.name );
YalpError error = new YalpError();
error.msg = "huhu";
error.descr = "hihi";
error.code = YalpErrorCode.OK;
error.level = YalpErrorLevel.ERROR_LEVEL_INFO;
err.value = error;
PluginInfo inf = new PluginInfo();
inf.id = 666;
inf.name = info.value.name;
inf.description = info.value.description;
inf.type = info.value.type;
inf.supportedTypes= info.value.supportedTypes;
inf.access = info.value.access;
inf.maxClients = info.value.maxClients;
inf.actClients = info.value.actClients;
info.value = inf;
}
/*
* remove output plugin
*
* @param plugin which should be registered
* @param error
*/
public void removeOutputPlugin( PluginInfo itf, YalpErrorHolder err )
{
logger.debug("removeOutputPlugin()");
/* t.b.d. itf handling */
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* get all registered output plugins
*
* @param plugin list
* @param error
*/
public void getOutputPlugins( PluginInfosHolder itfs, String name,
YalpErrorHolder err )
{
logger.debug("getOutputPlugins()");
/* t.b.d. itf handling */
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* register new input plugin
*
* @param plugin which should be registered
* @param error
*/
public void registerInputPlugin( org.omg.CORBA.Object itf,
PluginInfoHolder info, YalpErrorHolder err )
{
logger.info("registering input plugin: " + info.value.name );
InputPluginInterface inputItf;
try {
inputItf = InputPluginInterfaceHelper.narrow(itf);
} catch( Exception e ) {
e.printStackTrace();
return;
}
logger.debug("create new InputPlugin");
InputPlugin newPlugin = new InputPlugin(inputItf, info.value);
logger.debug("add new InputPlugin to Handler");
if( newPlugin != null )
inputHandler.addPlugin( newPlugin );
logger.debug("error handling");
YalpError error = new YalpError();
error.msg = "plugin registered";
error.descr = "";
error.code = YalpErrorCode.OK;
error.level = YalpErrorLevel.ERROR_LEVEL_INFO;
err.value = error;
PluginInfo inf = new PluginInfo();
inf.id = 666;
inf.name = info.value.name;
inf.description = info.value.description;
inf.type = info.value.type;
inf.supportedTypes= info.value.supportedTypes;
inf.access = info.value.access;
inf.maxClients = info.value.maxClients;
inf.actClients = info.value.actClients;
info.value = inf;
}
/*
* remove input plugin
*
* @param plugin which should be registered
* @param error
*/
public void removeInputPlugin( PluginInfo itf, YalpErrorHolder err )
{
logger.debug("removeInputPlugin()");
/* t.b.d. itf handling */
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* get all registered input plugins
*
* @param plugin list
* @param error
*/
public void getInputPlugins( PluginInfosHolder itfs,
String name, YalpErrorHolder err )
{
logger.debug("getInputPlugins()");
/* t.b.d. itf handling */
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* register new auth plugin
*
* @param plugin which should be registered
* @param error
*/
public void registerAuthPlugin( org.omg.CORBA.Object itf,
PluginInfoHolder info, YalpErrorHolder err )
{
logger.debug("registerAuthPlugin()");
/* t.b.d. itf handling */
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* remove input plugin
*
* @param plugin which should be registered
* @param error
*/
public void removeAuthPlugin( PluginInfo itf,
YalpErrorHolder err )
{
logger.debug("removeAuthPlugin()");
/* t.b.d. itf handling */
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* get all registered auth plugins
*
* @param plugin list
* @param error
*/
public void getAuthPlugins( PluginInfosHolder itfs,
String name, YalpErrorHolder err )
{
logger.debug("getAuthPlugins()");
/* t.b.d. itf handling */
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
err = new YalpErrorHolder(error);
}
/*
* to check if server is still ok
*
* @return Boolean true - if ok
*/
public void ping(YalpErrorHolder pong) {
logger.debug("ping()");
YalpError err = new YalpError();
err.descr = "PONG";
err.msg = "huhu";
err.level = YalpErrorLevel.ERROR_LEVEL_INFO;
err.code = YalpErrorCode.OK;
pong.value = err;
System.out.println("pong");
}
/*
* server shutdown
*/
public void serverShutdown()
{
logger.debug("server shutdown()");
/* t.b.d. clear server shutdown */
}
}