Ejemplo n.º 1
0
void
OsCleanup(Bool terminating)
{
    if (terminating) {
        UnlockServer();
    }
}
Ejemplo n.º 2
0
STDMETHODIMP CLogFactory::LogMonitor(LONG Handle, BSTR FileName)
{
	MONITOR Data;
	Data.Handle = Handle;
	Data.FileName = CString(FileName);

	if (0 != Handle)
	{
		m_arrMonitor.Add(Data);
		LONG Count = LockServer();
		LOGGER_WRITE(_T("增加监控, 服务计数:") << Count);
	}
	else
	{
		m_arrMonitor.Delete(Data);
		LONG Count = UnlockServer();
		LOGGER_WRITE(_T("删除监控, 服务计数:") << Count);
	}

	for (INT i = 0; i < MAX_SERVER_COUNT; i++)
	{
		LOGSERVER &LogServer = m_sLogServer[i];
		if (0 != LogServer.iClient)
		{
			CLogWriter &oLogServer = LogServer.oLogServer;
			oLogServer.SetMonitor(Handle, CString(FileName));
			return S_OK;
		}
	}

	return S_OK;
}
Ejemplo n.º 3
0
STDMETHODIMP CLogFactory::Close(BSTR AppName,
								BSTR LogName)
{
	if (NULL == LogName)
		return E_FAIL;

	for (INT i = 0; i < MAX_SERVER_COUNT; i++)
	{
		LOGSERVER &LogServer = m_sLogServer[i];
		if (LogServer.strLogName == LogName
			&& 0 < LogServer.iClient)
		{
			if (0 == --LogServer.iClient)
			{
				LogServer.oLogServer.Close();
				LogServer.strLogName.Empty();
			}

			CString strAppName(AppName);
			LogServer.oClientName.Delete(strAppName);

			LONG Count = UnlockServer();
			LOGGER_WRITE(_T("进程(") << strAppName.GetBuffer() << _T(")已关闭."));
			LOGGER_WRITE2(_T("删除客户端, 服务计数:") << Count);
			break;
		}
	}

	return S_OK;
}
Ejemplo n.º 4
0
void
OsCleanup(Bool terminating)
{
#ifdef SERVER_LOCK
    if (terminating)
    {
	UnlockServer();
    }
#endif
}