Esempio n. 1
0
void MyApplication::run(){
	std::string data_db_dir = app_args.work_dir + "/data";
	std::string meta_db_dir = app_args.work_dir + "/meta";

	log_info("ssdb-server %s", APP_VERSION);
	log_info("conf_file        : %s", app_args.conf_file.c_str());
	log_info("log_level        : %s", Logger::shared()->level_name().c_str());
	log_info("log_output       : %s", Logger::shared()->output_name().c_str());
	log_info("log_rotate_size  : %" PRId64, Logger::shared()->rotate_size());

	log_info("main_db          : %s", data_db_dir.c_str());
	log_info("meta_db          : %s", meta_db_dir.c_str());
	log_info("sync_speed       : %d MB/s", conf->get_num("replication.sync_speed"));

	NetworkServer *net = NULL;	
	SSDBServer *server = NULL;
	net = NetworkServer::init(*conf);
	server = new SSDBServer(*conf, net);
	
	log_info("pidfile: %s, pid: %d", app_args.pidfile.c_str(), (int)getpid());
	log_info("ssdb server started.");
	net->serve();
	
	delete net;
	delete server;

	log_info("%s exit.", APP_NAME);
}
Esempio n. 2
0
// Static method
connection_state_t Network::ServerStart(const std::string& port, const std::string& game_name, const std::string& password)
{
  NetworkServer* net = new NetworkServer(game_name, password);
  MSG_DEBUG("singleton", "Created singleton %p of type 'NetworkServer'\n", net);

  // replace current singleton
  Network* prev = singleton;
  singleton = net;

  // try to connect
  const connection_state_t error = net->StartServer(port, GameMode::GetInstance()->max_teams);

  if (error != CONNECTED) {
    // revert change
    singleton = prev;
    delete net;
  } else if (prev != NULL) {
    delete prev;
  }

  if (error == CONNECTED) {
    AppWarmux::GetInstance()->video->SetWindowCaption(std::string("WarMUX ") +
                                                      Constants::WARMUX_VERSION + " - " +
                                                      _("Server mode"));
  }

  return error;
}
Esempio n. 3
0
TEST(TestNetwork, testPerformance) {
	int inserts = 1;

	Logger* log = getLogger(NULL);

	cout << "Starting " << endl;

	log->startTimeRecord();

	NetworkServer* server = new NetworkServer(_port);
	server->listen(NULL, &callBackPerformance);

	cout << "Starting producer thread" << endl;
	Thread* threadProducer = new Thread(producer);
	threadProducer->start(NULL);

	while (__insertCount < MAX_INSERT) {
		Thread::sleep(100);
	}

	cout << "Closing the connection" << endl;

	threadProducer->join();

	server->stop();
	delete server;

	delete(log);
}
Esempio n. 4
0
void MyApplication::run(){
	Options option;
	option.load(*conf);

	std::string data_db_dir = app_args.work_dir + "/data";
	std::string meta_db_dir = app_args.work_dir + "/meta";

	log_info("ssdb-server %s", APP_VERSION);
	log_info("conf_file        : %s", app_args.conf_file.c_str());
	log_info("log_level        : %s", Logger::shared()->level_name().c_str());
	log_info("log_output       : %s", Logger::shared()->output_name().c_str());
	log_info("log_rotate_size  : %" PRId64, Logger::shared()->rotate_size());

	log_info("main_db          : %s", data_db_dir.c_str());
	log_info("meta_db          : %s", meta_db_dir.c_str());
	log_info("cache_size       : %d MB", option.cache_size);
	log_info("block_size       : %d KB", option.block_size);
	log_info("write_buffer     : %d MB", option.write_buffer_size);
	log_info("max_open_files   : %d", option.max_open_files);
	log_info("compaction_speed : %d MB/s", option.compaction_speed);
	log_info("compression      : %s", option.compression.c_str());
	log_info("binlog           : %s", option.binlog? "yes" : "no");
	log_info("sync_speed       : %d MB/s", conf->get_num("replication.sync_speed"));

	SSDB *data_db = NULL;
	SSDB *meta_db = NULL;
	data_db = SSDB::open(option, data_db_dir);
	if(!data_db){
		log_fatal("could not open data db: %s", data_db_dir.c_str());
		fprintf(stderr, "could not open data db: %s\n", data_db_dir.c_str());
		exit(1);
	}

	meta_db = SSDB::open(Options(), meta_db_dir);
	if(!meta_db){
		log_fatal("could not open meta db: %s", meta_db_dir.c_str());
		fprintf(stderr, "could not open meta db: %s\n", meta_db_dir.c_str());
		exit(1);
	}

	NetworkServer *net = NULL;	
	SSDBServer *server;
	net = NetworkServer::init(*conf);
	server = new SSDBServer(data_db, meta_db, *conf, net);
	
	log_info("pidfile: %s, pid: %d", app_args.pidfile.c_str(), (int)getpid());
	log_info("ssdb server started.");
	net->serve();
	
	delete net;
	delete server;
	delete meta_db;
	delete data_db;

	log_info("%s exit.", APP_NAME);
}
Esempio n. 5
0
int main(int argc, char **argv){
	Config conf;
	conf.set("server.port", "9000");
	NetworkServer serv;
	serv.init(conf);
	// register command procedure
	serv.proc_map.set_proc("hello", proc_hello);
	serv.serve();
	return 0;
}
Esempio n. 6
0
int main(int argc, char **argv){
	bool is_daemon = false;
	const char *conf_file = NULL;
	for(int i=1; i<argc; i++){
		if(strcmp(argv[i], "-d") == 0){
			is_daemon = true;
		}else{
			conf_file = argv[i];
		}
	}
	if(conf_file == NULL){
		usage(argc, argv);
		exit(1);
	}

	NetworkServer serv;
	serv.init(conf_file);
	serv.serve();
	return 0;
}
Esempio n. 7
0
TEST(TestNetwork, testCommands) {
	Logger* log = getLogger(NULL);
	NetworkServer* server = new NetworkServer(_port);
	server->listen(NULL, &callbackCommandServer);

	Thread::sleep(100);
	std::list<Thread*> threads;
	for (int x= 0; x < 1; x++) {
		Thread* t = new Thread(&commandClients);
		threads.push_back(t);
		t->start(NULL);
	}

	for (std::list<Thread*>::iterator it = threads.begin(); it != threads.end(); it++) {
		Thread* t = *it;
		t->join();
	}

	server->stop();
	delete server;
}
Esempio n. 8
0
	void RunServer(unsigned short port, SocketTransportLayer transport)
	{
		// Start the server either in TCP or UDP mode.
		server = network.StartServer(port, transport, this, true);
		if (!server)
		{
			cout << "Unable to start server in port " << port << "!" << endl;
			return;
		}

		cout << "Server waiting for connection in port " << port << "." << endl;

		server->RunModalServer();
	}
    int _tmain(int argc, _TCHAR* argv[])
    {     

    Win32Exception::install_handler();
    Win32Exception::set_dump_location(".","ZB_sv_ded");


#else
    int main( int argc, char **argv )
        {
#endif
    try
    {
        s_params.loadParameters("config_server.xml");
        s_params.loadParameters("config_common.xml");

        s_params.loadParameters("data/config/teams.xml");
        s_params.loadParameters("data/config/weapon_systems.xml");
        s_params.loadParameters("data/config/tanks.xml");
        s_params.loadParameters("data/config/upgrade_system.xml");

        s_params.mergeCommandLineParams(argc, argv);
        
        s_log.open("./", "server");
        s_log.appendCr(true);
        s_log << "Version " << g_version << "\n";
        
        NetworkServer server;

        server.logon();

        g_puppet_master = server.getPuppetMaster();
        g_puppet_master->addObserver(ObserverCallbackFun0(&onGameFinished),
                                     PMOE_GAME_FINISHED,
                                     &g_fp_group);
        g_puppet_master->addObserver(ObserverCallbackFun0(&onLevelLoaded),
                                     PMOE_LEVEL_LOADED,
                                     &g_fp_group);
        g_puppet_master->addObserver(ObserverCallbackFun0(&startMapRotation),
                                     PMOE_AUTH_DATA_SET,
                                     &g_fp_group);
        
        ConsoleApp app;
        app.run();

    } catch (Exception & e)
    {
        e.addHistory("main()");
        s_log << Log::error << e << "\n";
    }
#ifdef _WIN32
    catch (const Win32Exception & e) 
    {
        std::stringstream err;
        err << e.what() << " (code " << std::hex << e.code()
            << ") at " << e.where() << std::endl << std::endl 
            << "A memory dump has been created and stored at: " << std::endl
            << Win32Exception::get_dump_location() << "\n";

        // show msgbox for win32 exception
        MessageBox( NULL, 
                    err.str().c_str(),
                    "Win32 - Exception", 
                    MB_OK | MB_ICONERROR | MB_TASKMODAL );
    }
#endif


    // to avoid singleton longevity issues
    g_fp_group.deregisterAllOfType(TaskFp());
    g_fp_group.deregisterAllOfType(ObserverFp(NULL, NULL, 0));
    
    return 0;
}