//
// A signal handler
//
void MainSignalHandler::Handler(const INT_32 iSignal)
{
	switch (iSignal)
	{
		// Ignore it
		case SIGPIPE:
			;;
			break;

		// Shutdown server immediatly
		case SIGINT:
			oGlobalContext.shutdown_type = GlobalContext::IMMEDIATE;
			oGlobalContext.error_log -> Notice("%d catched SIGINT. Shutting down immediately", INT_32(getpid()));
			break;

		// Commit all transactions, then shut down
		case SIGTERM:
			oGlobalContext.shutdown_type = GlobalContext::TRANSACTIONAL;
			oGlobalContext.error_log -> Notice("%d catched SIGTERM. Commit all transactions and shut down", INT_32(getpid()));
			break;

		// Re-open logs, TBD
		case SIGUSR1:
			oGlobalContext.error_log -> Notice("%d catched SIGUSR1. Reopening all logs", INT_32(getpid()));
			break;

		default:
			oGlobalContext.error_log -> Notice("Unknown signal (%d) catched: %d", INT_32(getpid()), iSignal);
	}
}
Exemple #2
0
//
// Handler
//
INT_32 FnGetText::Handler(CDT            * aArguments,
		          const UINT_32    iArgNum,
		          CDT            & oCDTRetVal,
		          Logger         & oLogger)
{
	if (iArgNum == 1)
	{
		oCDTRetVal = gettext(aArguments[0].GetString().c_str());
		return 0;
	}
	else if (iArgNum == 2)
	{
		oCDTRetVal = dgettext(aArguments[1].GetString().c_str(), aArguments[0].GetString().c_str());
		return 0;
	}
	else if (iArgNum == 3)
	{
		oCDTRetVal = ngettext(aArguments[2].GetString().c_str(), aArguments[1].GetString().c_str(), INT_32(aArguments[0].GetInt()));
		return 0;
	}
	else if (iArgNum == 4)
	{
		oCDTRetVal = dngettext(aArguments[3].GetString().c_str(), aArguments[2].GetString().c_str(), aArguments[1].GetString().c_str(), INT_32(aArguments[0].GetInt()));
		return 0;
	}

	oLogger.Emerg("Usage: GETTEXT(message), GETTEXT(domain, message) or GETTEXT(message, message-plural, n)");
	return -1;
}
//
// Handler
//
INT_32 FnGetText_::Handler(CDT            * aArguments,
                          const UINT_32    iArgNum,
                          CDT            & oCDTRetVal,
                          Logger         & oLogger)
{
	if (iArgNum == 1)
	{
		oCDTRetVal = gettext(aArguments[0].GetString().c_str());
		return 0;
	}
	else if (iArgNum == 2)
	{
		oCDTRetVal = dgettext(aArguments[1].GetString().c_str(), aArguments[0].GetString().c_str());
		return 0;
	}
	else if (iArgNum == 3)
	{
		oCDTRetVal = dcgettext(aArguments[2].GetString().c_str(), aArguments[1].GetString().c_str(), INT_32(aArguments[3].GetInt()));
		return 0;
	}

	oLogger.Emerg("Usage: _(message) or _(message, domain) or _(message, domain, category)");
return -1;
}