#include
void RiskParams::LoadConfigFromFile()
{
CString strCurAppPath;
XTradeUtil::GetCurrentAppPath(strCurAppPath);
char szConfigPath[MAX_PATH];
memset(szConfigPath, 0, sizeof(MAX_PATH));
USES_CONVERSION;
strcpy_s(szConfigPath, T2A(strCurAppPath));
sprintf_s(szConfigPath + strlen(szConfigPath), MAX_PATH - strlen(szConfigPath), "%s", "\\config\\risk_params.xml");
boost::property_tree::ptree proTree;
//TCHAR szFilePath[MAX_PATH + 1]={0};
//GetModuleFileName(NULL, szFilePath, MAX_PATH);
//setlocale(LC_ALL,"Chinese-simplified");
boost::property_tree::xml_parser::read_xml(szConfigPath, proTree);
boost::property_tree::ptree globalTag = proTree.get_child("Configs.GlobalParams");
memset(&m_globalParams, 0, sizeof(CGlobalParams));
strcpy_s(m_globalParams.m_szDbServerIP, globalTag.get("DbServerIP", "0.0.0.0").c_str());
m_globalParams.m_nDbServerPort = atoi(globalTag.get("DbServerPort", "9999").c_str());
strcpy_s(m_globalParams.m_szTradeServerIP, globalTag.get("TradeServerIP", "0.0.0.0").c_str());
m_globalParams.m_nTradeServerPort = atoi(globalTag.get("TradeServerPort", "9999").c_str());
strcpy_s(m_globalParams.m_szLogServerIP, globalTag.get("LogServerIP", "0.0.0.0").c_str());
m_globalParams.m_nLogServerPort = atoi(globalTag.get("LogServerPort", "9999").c_str());
strcpy_s(m_globalParams.m_szQuoteServerIP, globalTag.get("QuoteServerIP", "0.0.0.0").c_str());
m_globalParams.m_nQuoteServerPort = atoi(globalTag.get("QuoteServerPort", "9999").c_str());
strcpy_s(m_globalParams.m_szQuoteUser, globalTag.get("QuoteUser", "").c_str());
strcpy_s(m_globalParams.m_szQuotePass, globalTag.get("QuotePass", "").c_str());
strcpy_s(m_globalParams.m_szQuoteAuthCode, globalTag.get("QuoteAuthCode", "").c_str());
string strCloseConfirm = globalTag.get("CloseConfirm", "0");
if (strCloseConfirm.compare("0") == 0)
m_globalParams.m_bCloseConfirm = false;
else
m_globalParams.m_bCloseConfirm = true;
string strOrderConfirm = globalTag.get("OrderConfirm", "0");
if (strOrderConfirm.compare("0") == 0)
m_globalParams.m_bOrderConfirm = false;
else
m_globalParams.m_bOrderConfirm = true;
string strShowEntrustSuccess = globalTag.get("ShowEntrustSuccess", "1");
if (strShowEntrustSuccess.compare("0") == 0)
m_globalParams.m_bShowEntrustSuccess = false;
else
m_globalParams.m_bShowEntrustSuccess = true;
boost::property_tree::ptree operatorTag = proTree.get_child("Configs.OperatorParams");
m_pOperatorParams = new COperatorParams();
memset(m_pOperatorParams, 0, sizeof(COperatorParams));
m_pOperatorParams->m_nBuyUpTickNum = atoi(operatorTag.get("BuyUpTickNum", "50").c_str());
m_pOperatorParams->m_nSellDownTickNum = atoi(operatorTag.get("SellDownTickNum", "50").c_str());
}
void RiskParams::SaveConfigSetting()
{
using boost::property_tree::ptree;
CString strCurAppPath;
XTradeUtil::GetCurrentAppPath(strCurAppPath);
char szConfigPath[MAX_PATH];
memset(szConfigPath, 0, sizeof(MAX_PATH));
USES_CONVERSION;
strcpy_s(szConfigPath, T2A(strCurAppPath));
sprintf_s(szConfigPath + strlen(szConfigPath), MAX_PATH - strlen(szConfigPath), "%s", "\\config\\risk_params.xml");
char szFormat[256];
ptree ptWrite;
//DB_Server
ptWrite.put
snprintf(szFormat, sizeof(szFormat), "%d", m_globalParams.m_nDbServerPort);
ptWrite.put
//Gateway
ptWrite.put
snprintf(szFormat, sizeof(szFormat), "%d", m_globalParams.m_nTradeServerPort);
ptWrite.put
//Logger Server
ptWrite.put
snprintf(szFormat, sizeof(szFormat), "%d", m_globalParams.m_nLogServerPort);
ptWrite.put
//Quote Server
ptWrite.put
snprintf(szFormat, sizeof(szFormat), "%d", m_globalParams.m_nQuoteServerPort);
ptWrite.put
ptWrite.put
ptWrite.put
ptWrite.put
// switch
if(m_globalParams.m_bCloseConfirm)
ptWrite.put
else
ptWrite.put
if(m_globalParams.m_bOrderConfirm)
ptWrite.put
else
ptWrite.put
if(m_globalParams.m_bShowEntrustSuccess)
ptWrite.put
else
ptWrite.put
//operator config
snprintf(szFormat, sizeof(szFormat), "%d", m_pOperatorParams->m_nBuyUpTickNum);
ptWrite.put
snprintf(szFormat, sizeof(szFormat), "%d", m_pOperatorParams->m_nSellDownTickNum);
ptWrite.put
auto settings = boost::property_tree::xml_writer_make_settings
boost::property_tree::xml_parser::write_xml(szConfigPath, ptWrite, std::locale(), settings);
}