package es.tid.topologyModuleBase.plugins.writer;
import java.io.IOException;
import java.net.ServerSocket;
import java.util.concurrent.locks.Lock;
import es.tid.topologyModuleBase.TopologyModuleParams;
import es.tid.topologyModuleBase.database.TopologiesDataBase;
import es.tid.topologyModuleBase.plugins.writer.gson.GsonSession;
/**
*
* @author jaume
*
*/
public class TopologyServerGson extends TopologyServer
{
private boolean isRunning;
public TopologyServerGson(TopologiesDataBase ted, TopologyModuleParams params, Lock lock)
{
super(ted,params,lock);
}
@Override
public void serveTopology()
{
this.run();
}
@Override
public void run(){
ServerSocket serverSocket = null;
boolean listening=true;
log.info("Initializing Gson Sever in Topology Module");
try
{
log.info("Listening on port: "+params.getGsonPort());
serverSocket = new ServerSocket(params.getGsonPort());
} catch (IOException e) {
System.err.println("Could not listen on port: "+params.getGsonPort());
System.exit(-1);
}
try
{
while (listening)
{
new GsonSession(serverSocket.accept(),infRetriever,ted).start();
}
System.out.println("Se cierra");
serverSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public boolean isRunning() {
// TODO Auto-generated method stub
return isRunning;
}
@Override
public String getPluginName() {
// TODO Auto-generated method stub
return "Gson exporter";
}
@Override
public String displayInfo() {
// TODO Auto-generated method stub
String str=getPluginName()+"\n";
str+="Status: ";
if(isRunning())str+="running";
else str+="stop";
return str;
}
}