#pragma once #include #include #include class CPluginInstance : public IMTServerPlugin , public IMTConPluginSink , public IMTOrderSink , public IMTDealSink { public: CPluginInstance(); virtual ~CPluginInstance(); virtual void Release(); virtual MTAPIRES Start(IMTServerAPI* server); virtual MTAPIRES Stop(); virtual void OnPluginUpdate(const IMTConPlugin* plugin); virtual void OnOrderAdd(const IMTOrder* order); virtual void OnOrderUpdate(const IMTOrder* order); virtual void OnOrderDelete(const IMTOrder* order); virtual void OnOrderClean(const UINT64 login); virtual void OnDealAdd(const IMTDeal* deal); virtual void OnDealUpdate(const IMTDeal* deal); virtual void OnDealDelete(const IMTDeal* deal); virtual void OnDealClean(const UINT64 login); virtual void OnDealPerform(const IMTDeal* deal, IMTAccount* account, IMTPosition* position); protected: virtual MTAPIRES LoadParam(); private: IMTServerAPI* m_api; IMTConPlugin* m_config; MTServerInfo m_info; std::mutex m_lock; bool m_enable; std::wstring m_groups; std::wstring m_logins; UINT64 m_trader; int m_step; int m_tolerance; };