⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.cpp

📁 电信的97接口程序,用于把话单入库。这里是采用FTP方式采集话单
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			Ltrim(m_localDir, BUFSIZE-1); // modified by zhj
			break;
*/
		case 2:
			m_irrFrequency = atoi(line+k+1);
			break;
		case 3:
		{
			// begin to set backup gatekeeper.
			p1 = line+k+1;

			m_oraList.SetSize(m_oradbNum + 1);
			m_oraInfo[m_oradbNum] = new OraInfo;

			for(k=0; !(p1[k]==':' || p1[k]==0 ); k++);
			STRNCPY(c1, p1, k, BUFSIZE-1);
			Ltrim(c1, BUFSIZE-1); 
			strncpy(m_oraInfo[m_oradbNum]->username, c1, sizeof m_oraInfo[m_oradbNum]->username);

			p1 += k+1;
			for(k=0; !(p1[k]==':' ||isspace(p1[k]) || p1[k]==0 ); k++);
			STRNCPY(c1, p1, k, BUFSIZE-1);
			Ltrim(c1, BUFSIZE-1); 
			strncpy(m_oraInfo[m_oradbNum]->password, c1, sizeof m_oraInfo[m_oradbNum]->password);
			
			p1 += k+1;
			for(k=0; !(p1[k]==':' || isspace(p1[k]) || p1[k] == 0); k++);
			STRNCPY(c1, p1, k, BUFSIZE-1);
			Ltrim(c1, BUFSIZE-1); // modified by zhj
			strncpy(m_oraInfo[m_oradbNum]->connect, c1, sizeof m_oraInfo[m_oradbNum]->connect);
			m_oraList.SetAt(m_oradbNum, m_oraInfo[m_oradbNum]);

			m_oradbNum ++;
			break;
		}

        default:
			RTRACE(1, "Read config file error!");
			//return 0;
			continue; //if find a error, ignore it.
		}
	}
	
	is.close();

	char ctlName[BUFSIZE];
	sprintf(ctlName, "%s%s", pathBuf, "smgw.ctl");

	m_radLog.Init(m_debugLevel, m_logFile, ctlName, m_totalLogSize, RadTrace::e_separateFile);

/*	RTRACE::Initialise(5, m_logFile);
	RTRACE::SetOptions(RTRACE::DateAndTime);
	RTRACE::ClearOptions(RTRACE::Thread);
	RTRACE::ClearOptions(RTRACE::Timestamp);
	RTRACE::ClearOptions(RTRACE::SystemLogStream);

	//RTRACE::ClearOptions(RTRACE::FileAndLine);
	SetDebugLevel(m_debugLevel);
*/

	TransVer(VERSION);
	RTRACE(1, "\n\n\n\nInitial Intface97 " << m_verString << " ...");
	RTRACE(5, keyword[0] << " = " << m_debugLevel);
	RTRACE(5, keyword[1] << " = " << m_logFile);
	RTRACE(5, keyword[2] << " = " << m_irrFrequency);

	RTRACE(5, keyword[4] << " = " << m_dbServer);
	RTRACE(5, keyword[5] << " = " << m_dbAccount);
	RTRACE(5, keyword[6] << " = " << m_dbPassword);
	RTRACE(5, keyword[7] << " = " << m_dbName);
	RTRACE(5, keyword[8] << " = " << m_rollback);
	RTRACE(5, keyword[9] << " = " << m_totalLogSize);
	RTRACE(5, keyword[14] << " = " << m_areacode);
	RTRACE(5, keyword[23] << " = " << m_serverport);
	RTRACE(5, keyword[10] << " = " << m_deleteNow);
	RTRACE(5, keyword[11] << " = " << m_useNow);
	
	if(m_areacode == 0 || m_areacode == 1)
	{
		RTRACE(5, keyword[12] << " = " << m_maxDisconnectTimes);
		RTRACE(5, keyword[13] << " = " << m_port);

		RTRACE(5, keyword[3] << ":");

		for ( j=0; j<m_oradbNum; j++) 
		{
			RTRACE(5, "\tusername = " << m_oraInfo[j]->username);
			RTRACE(5, "\tpassword = " << m_oraInfo[j]->password);
			RTRACE(5, "\tconnect  = " << m_oraInfo[j]->connect << "\n");
		}
	}
	else
	{
		RTRACE(5, keyword[16] << " = " << m_localDir);
		
		if(m_ftpNum == 0)
			RTRACE(5, keyword[17] << " = " << m_shareDir);
		else
		{
			struct in_addr tmp;

			RTRACE(5, keyword[18] << " = " << m_getFilePath);
			RTRACE(5, keyword[19] << " = " << m_putFilePath);
			RTRACE(5, keyword[15] << ":");

			for(j=0; j<m_ftpNum; j++)
			{
				tmp.S_un.S_addr = m_negGkList[j].m_ip;
				RTRACE(5,  inet_ntoa(tmp)<< ":" << m_negGkList[j].m_port);
				RTRACE(5, "username" << "=" << m_username[j]);
				RTRACE(5, "password" << "=" << m_password[j]);
				if( m_negGkList.GetSize() == j+1 )
					break;
			}
		}
	}
	RTRACE(5, "Excute Path = " << m_execDir);

/*
	for ( j=0; j<m_oradbNum; j++) 
	{
		RTRACE(5, "\tusername = " << m_oraInfo[j]->username);
		RTRACE(5, "\tpassword = " << m_oraInfo[j]->password);
		RTRACE(5, "\tconnect  = " << m_oraInfo[j]->connect << "\n");
		tmp.S_un.S_addr = m_negGkList[j].m_ip;
		RTRACE(5,  inet_ntoa(tmp)<< ":" << m_negGkList[j].m_port);
		RTRACE(5, "username" << "=" << m_username[j]);
		RTRACE(5, "password" << "=" << m_password[j]);
		if( m_negGkList.GetSize() == j+1 )
			break;

	}
*/

	return 1;
}


/////////////////////////////////////////////////////////////////////
//class CGlobal 
/////////////////////////////////////////////////////////////////////

CGlobal::CGlobal() 
{
	srand( (unsigned)time( NULL ) );

	// set default value
	strcpy(m_logFile, LOG_FILE);
	m_debugLevel = 1;
	m_irrFrequency = 120;

	m_dbServer[0] = 0;
	m_dbAccount[0] = 0;
	m_dbPassword[0] = 0;
	m_dbName[0] = 0;
	m_oradbNum = 0;

	m_deleteNow = 0; // No
	m_useNow = 0; // No

	m_maxDisconnectTimes = 100;
	m_disconnectTimes = 0;

	m_rollback = -1; //forbid for rollback

	m_port = 10009;
	m_areacode = 0; // default value means normal area

	m_serverport=13457;

	// set the ftp initial value
	m_ftpNum = 0;
	strcpy(m_localDir, "c:\\");
	m_shareDir[0] = 0;

	// init the path to local directory
	m_getFilePath[0] = '.';
	m_getFilePath[1] = '\0';
	m_putFilePath[0] = '.';
	m_putFilePath[1] = '\0';


	Init();

	m_connectTime = 0;
}


CGlobal::~CGlobal() 
{
	for(int i=0;i<=m_oradbNum;i++)
		delete m_oraInfo[i];
	Exit();
	m_instance = NULL;
	m_oraList.RemoveAll();
}


void CGlobal::Init()
{
	if( !ReadConfigFile() )
	{
		RTRACE(1, "read config file fail! I will use default parameter.");
	}
}


void CGlobal::Exit()
{
}


/////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////

int CGlobal::GetDebugLevel(void)
{
	return m_debugLevel; 
}


int	CGlobal::SetDebugLevel(int level)
{
	m_debugLevel = level;
	PTrace::SetLevel( level );
	return 1;
}


char * CGlobal::GetLogFileName(void) 
{
	return m_logFile; 
}


int CGlobal::SetLogFileName(const char * log) 
{
	strcpy(m_logFile, log);
	return 1;
}

char * CGlobal::ConvertQuote(char * express)
{
	static char tmp[SQL_SIZE+1];
	int j=0;
	
	for(int i=0; i < (int)strlen(express); i++)
	{
		if(express[i] == '\'')
		{
			tmp[i+j] = '\\';
			j++;
			tmp[i+j] = '\'';
		}
		else
			tmp[i + j] = express[i];
	}
	return tmp;
}

//get the path of execute file 
int GetConfigPath(char pathBuf[], char serverName[])
{
	unsigned char pathBufTmp[256];
	char subKey[256];
	HKEY hKey;
	DWORD pathBufSize = BUFSIZE;
	int iResult=1; //1:failure 0:success

	strcpy(subKey, "SYSTEM\\CurrentControlSet\\Services\\");
	strcat(subKey, serverName);

	if(RegOpenKey(HKEY_LOCAL_MACHINE, subKey, &hKey) == ERROR_SUCCESS)
	{		
		if(RegQueryValueEx(hKey, "ImagePath", 0,
							NULL, 
							pathBufTmp, 
							&pathBufSize) == ERROR_SUCCESS)
		{
			int i, j=0;
			for(i=1;i<=(int)pathBufSize;i++)
			{
				if(pathBufTmp[pathBufSize - i] == '\\')
				{
					pathBufTmp[pathBufSize - i + 1] = 0;
					break;
				}
			}
			strcpy(pathBuf, (char*)pathBufTmp);
			iResult = 0; //success
		}
	}
	RTRACE(4, "The execute directory is " << pathBuf);
	RegCloseKey(hKey);
	return iResult;
}

// Transfer version from unsigned integer to string
int CGlobal::TransVer(int version)
{
	char buf[10];
	sprintf(buf, "%d", version);
	int i=0;
	while(buf[i] != '\0')
	{
		if(i != 0)
			m_verString[2*i - 1] = '.';
		m_verString[2 * i] = buf[i];
		i ++;
	}
	m_verString[2 * i - 1] = 0;
	return 0;
}

//get the datetime now.
void CGlobal::NowDateTime(char * now)
{
	time_t tNow;
	struct tm *tmNow;

	time(&tNow);
	tmNow = localtime(&tNow);
	strftime(now, 20 , "%Y-%m-%d %H:%M:%S", tmNow);
}

/*
void CGlobal::GetServiceTypeFromFileName(PString fileName)
{
	if(strlen(fileName) < 3)
		return;
	if(fileName[0] != 'M' && fileName[0] != 'm')
		return;
	if(fileName[1] == 't' || fileName[1] == 'T')
	{
		if(fileName[2] == 'f' || fileName[2] == 'F')
			m_serviceType = 723;
		else if(fileName[2] >= '0' && fileName[2] <= '9')
			m_serviceType = 721;
	}
	if(fileName[1] == 'o' || fileName[1] == 'O')
	{
		if(fileName[2] == 'f' || fileName[2] == 'F')
			m_serviceType = 722;
		else if(fileName[2] >= '0' && fileName[2] <= '9')
			m_serviceType = 720;
	}
}
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -