/*
* This file is part of rasdaman community.
*
* Rasdaman community 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 3 of the License, or
* (at your option) any later version.
*
* Rasdaman community 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 rasdaman community. If not, see .
*
* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
rasdaman GmbH.
*
* For more information please see
* or contact Peter Baumann via .
*/
/*************************************************************
*
*
* PURPOSE:
*
*
* COMMENTS:
* - called from rasserver_main.cc
* - startRnpServer() is twin to startRpcServer and startHttpServer()
*
************************************************************/
#include
#include
#include "rnpserver.hh"
#include "srvrasmgrcomm.hh"
#include "server/rasserver_config.hh"
#include "rnpservercomm.hh"
#include "raslib/rminit.hh"
#include "debug-srv.hh"
// only for access control
#include "servercomm/servercomm.hh"
#include "server/rasserver_entry.hh"
RnpRasDaManComm rnpServerComm;
RasserverCommunicator communicator(&rnpServerComm);
extern "C"
{
void rnpSignalHandler(int sig);
}
void startRnpServer()
{
ENTER( "startRnpServer" );
signal (SIGTERM, rnpSignalHandler);
RMInit::logOut << "Initializing control connections..." << flush;
rasmgrComm.init(configuration.getTimeout(), configuration.getServerName(), configuration.getRasmgrHost(), configuration.getRasmgrPort());
accessControl.setServerName(configuration.getServerName());
RMInit::logOut << "informing rasmgr: server available..." << flush;
rasmgrComm.informRasmgrServerAvailable();
RMInit::logOut << "ok" << endl;
//##################
RMInit::logOut << "Initializing job control..." << flush;
communicator.initJobs(1);
communicator.setTimeout(RNP_TIMEOUT_LISTEN,0); // the select loop!
communicator.setListenPort(configuration.getListenPort());
rnpServerComm.setServerJobs(1);
rnpServerComm.connectToCommunicator(communicator);
rnpServerComm.setTransmitterBufferSize(configuration.getMaxTransferBufferSize());
RMInit::logOut<<"setting timeout to "<