|
@@ -2,11 +2,13 @@
|
|
|
#include "PluginInstance.h"
|
|
#include "PluginInstance.h"
|
|
|
|
|
|
|
|
CPluginInstance::CPluginInstance()
|
|
CPluginInstance::CPluginInstance()
|
|
|
|
|
+ : m_enable(false)
|
|
|
{
|
|
{
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
CPluginInstance::~CPluginInstance()
|
|
CPluginInstance::~CPluginInstance()
|
|
|
{
|
|
{
|
|
|
|
|
+ Stop();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void CPluginInstance::Release()
|
|
void CPluginInstance::Release()
|
|
@@ -76,10 +78,28 @@ MTAPIRES CPluginInstance::Stop()
|
|
|
SMTFormat::FormatError(ret), ret);
|
|
SMTFormat::FormatError(ret), ret);
|
|
|
|
|
|
|
|
m_api = nullptr;
|
|
m_api = nullptr;
|
|
|
|
|
+ m_enable = false;
|
|
|
|
|
|
|
|
return MT_RET_OK;
|
|
return MT_RET_OK;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+void CPluginInstance::OnPluginUpdate(const IMTConPlugin * plugin)
|
|
|
|
|
+{
|
|
|
|
|
+ LoadParam();
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void CPluginInstance::OnDealPerform(const IMTDeal * deal, IMTAccount * account, IMTPosition * position)
|
|
|
|
|
+{
|
|
|
|
|
+ // positionΪnullptrʱ£¬
|
|
|
|
|
+ if (position == nullptr
|
|
|
|
|
+ || deal == nullptr
|
|
|
|
|
+ || account == nullptr)
|
|
|
|
|
+ return;
|
|
|
|
|
+
|
|
|
|
|
+ std::lock_guard<decltype(m_lock)> lk(m_lock);
|
|
|
|
|
+ if (m_enable) return;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
MTAPIRES CPluginInstance::LoadParam()
|
|
MTAPIRES CPluginInstance::LoadParam()
|
|
|
{
|
|
{
|
|
|
MTAPIRES res = MT_RET_OK;
|
|
MTAPIRES res = MT_RET_OK;
|
|
@@ -101,6 +121,12 @@ MTAPIRES CPluginInstance::LoadParam()
|
|
|
return MT_RET_ERR_MEM;
|
|
return MT_RET_ERR_MEM;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ ScopeGuard param_release([param]()
|
|
|
|
|
+ {
|
|
|
|
|
+ param->Release();
|
|
|
|
|
+ });
|
|
|
|
|
+ std::lock_guard<decltype(m_lock)> lk(m_lock);
|
|
|
|
|
+
|
|
|
if ((res = m_config->ParameterGet(L"Trader", param)) != MT_RET_OK || param->Type() != IMTConParam::TYPE_INT)
|
|
if ((res = m_config->ParameterGet(L"Trader", param)) != MT_RET_OK || param->Type() != IMTConParam::TYPE_INT)
|
|
|
{
|
|
{
|
|
|
return(MT_RET_ERR_PARAMS);
|
|
return(MT_RET_ERR_PARAMS);
|
|
@@ -126,4 +152,8 @@ MTAPIRES CPluginInstance::LoadParam()
|
|
|
return(MT_RET_ERR_PARAMS);
|
|
return(MT_RET_ERR_PARAMS);
|
|
|
}
|
|
}
|
|
|
m_logins = param->ValueString();
|
|
m_logins = param->ValueString();
|
|
|
|
|
+
|
|
|
|
|
+ m_enable = true;
|
|
|
|
|
+
|
|
|
|
|
+ return MT_RET_OK;
|
|
|
}
|
|
}
|