Ejemplo n.º 1
0
int on_switch(char * v, void *d)
{
	__bool ok = __false;
	CArgs args;

	PCRTK_PACKET p = (PCRTK_PACKET)d;
	
	parse_arg_ex(v, &args, " ");
	if(args.argc >= 2){
		if(!strcmpi(args.argv[1], "primary")){
			ok = switch_to_primary();
		}else if(!strcmpi(args.argv[1], "backup")){
			ok = switch_to_backup();
		}
	}
	
	send_rtk_data_with_guid(
		vbus_system,
		&p->src,
		&p->guid,
		ok ? PT_System : PT_System | PF_Failed | PF_ACK,
		0,
		0
		);
	
	return 0;
}
Ejemplo n.º 2
0
bool CRtkService::_uninit()
{
	bool is_server;

	is_server = get_power_state()==PWR_RUNNING? true : false;

	utils_trace("Please stand-by ...\n");		
	
	switch_to_backup();

	uninit_ioss();
	utils_trace("IO subsystem stopped.\n");
	destroy_rtdb();
	utils_trace("Realtime Database Subsystem closed.\n");	
#ifdef _WIN32
	uninit_spac();
#endif
	utils_trace("IO Subsystem closed.\n");

	if(is_server){
		if(!bring_up_backups()){
			offline_broadcast();
		}
	}
	
	unregister_power_callback(power_state_changed, 0);

	uninit_network();
	utils_trace("Networking subsystem closed.\n");

	utils_trace("%s stopped.\n",  versionString.c_str());

	uninit_config();
	uninit_server_shell();
	
	return true;
}