// Constructor
CMarketExchange::CMarketExchange(char *szFileLoc,
		TIdent iConfiguredCustomerCount, TIdent iActiveCustomerCount,
		int iListenPort, char *szBHaddr, int iBHlistenPort,
		char *outputDirectory)
: m_iListenPort(iListenPort)
{
	char filename[iMaxPath + 1];
	snprintf(filename, iMaxPath, "%s/MarketExchange.log", outputDirectory);
	m_pLog = new CEGenLogger(eDriverEGenLoader, 0, filename, &m_fmt);

	snprintf(filename, iMaxPath, "%s/MarketExchange_Error.log",
			outputDirectory);
	m_fLog.open(filename, ios::out);
	snprintf(filename, iMaxPath, "%s/%s", outputDirectory, MEE_MIX_LOG_NAME);
	m_fMix.open(filename, ios::out);

	// Initialize MEESUT
	m_pCMEESUT = new CMEESUT(szBHaddr, iBHlistenPort, &m_fLog, &m_fMix,
			&m_LogLock, &m_MixLock);

	// Initialize MEE
	CInputFiles inputFiles;
	inputFiles.Initialize(eDriverEGenLoader, iConfiguredCustomerCount,
			iActiveCustomerCount, szFileLoc);
	m_pCMEE = new CMEE(0, m_pCMEESUT, m_pLog, inputFiles, 1);
	m_pCMEE->SetBaseTime();
}
Beispiel #2
0
CBrokerageHouse::CBrokerageHouse(const char *szHost, const char *szDBName,
		const char *szDBPort, const int iListenPort, char *outputDirectory)
: m_iListenPort(iListenPort)
{
	strncpy(m_szHost, szHost, iMaxHostname);
	m_szHost[iMaxHostname] = '\0';
	strncpy(m_szDBName, szDBName, iMaxDBName);
	m_szDBName[iMaxDBName] = '\0';
	strncpy(m_szDBPort, szDBPort, iMaxPort);
	m_szDBPort[iMaxPort] = '\0';
#else
#ifdef NO_MEE_FOR_TRADERESULT
CBrokerageHouse::CBrokerageHouse(char *_mysql_dbname, char *_mysql_host, char * _mysql_user, char * _mysql_pass, char *_mysql_port, char * _mysql_socket, const int iListenPort, char *_outputDirectory, char* _szFileLoc, char* _szBHaddr, int _iActiveCustomerCount, int _iConfiguredCustomerCount, int _iUsers)
#else
CBrokerageHouse::CBrokerageHouse(char *_mysql_dbname, char *_mysql_host, char * _mysql_user, char * _mysql_pass, char *_mysql_port, char * _mysql_socket, const int iListenPort, char *outputDirectory)
#endif
: m_iListenPort(iListenPort)
{
	if (_mysql_dbname != NULL) {
		strcpy(mysql_dbname, _mysql_dbname);
	}
	if (_mysql_host != NULL) {
		strcpy(mysql_host, _mysql_host);
        }
	if (_mysql_user != NULL) {
		strcpy(mysql_user, _mysql_user);
        }
	if (_mysql_pass != NULL) {
		strcpy(mysql_pass, _mysql_pass);
	}
	if (_mysql_port != NULL) {
		strcpy(mysql_port_t, _mysql_port);
	}
	if (_mysql_socket != NULL) {
		strcpy(mysql_socket_t, _mysql_socket);
	}

#endif

	char filename[iMaxPath + 1];
	snprintf(filename, iMaxPath, "%s/BrokerageHouse_Error.log",
			outputDirectory);
	char s[1000];
	m_fLog.open(filename, ios::out);
#ifdef NO_MEE_FOR_TRADERESULT
	strcpy(outputDir, _outputDirectory);
#else
	strcpy(outputDir, outputDirectory);
#endif
	logErrorMessage(s, false);
#ifdef NO_MEE_FOR_TRADERESULT
	szFileLoc = _szFileLoc;
	szBHaddr = _szBHaddr;
	outputDirectory = _outputDirectory;
	iActiveCustomerCount = _iActiveCustomerCount;
	iConfiguredCustomerCount = _iConfiguredCustomerCount;
	iUsers = _iUsers;
#endif
}

#ifdef NO_MEE_FOR_TRADERESULT
void CBrokerageHouse::startFakeMEE(){
	char filename[iMaxPath + 1];

	snprintf(filename, iMaxPath, "%s/MarketExchange.log", outputDirectory);
	m_pLog = new CEGenLogger(eDriverEGenLoader, 0, filename, &m_fmt);

	snprintf(filename, iMaxPath, "%s/%s", outputDirectory, "mee_mix.log");
	ofstream m_fMix;
	m_fMix.open(filename, ios::out);

	CInputFiles inputFiles;
	inputFiles.Initialize(eDriverEGenLoader, iConfiguredCustomerCount,
			iActiveCustomerCount, szFileLoc);
	for(int i=0; i<iUsers; i++){
		m_pCMEESUT[i] = new CMEESUT(szBHaddr, iBrokerageHousePort, &m_fLog, &m_fMix,
					&m_meeLogLock[i], &m_MixLock[i]);
		m_pCMEE[i] = new CMEE(0, m_pCMEESUT[i], m_pLog, inputFiles, 1);
		m_pCMEE[i]->SetBaseTime();
	}
}