#pragma once #include #include #include struct order_info { UINT32 level; UINT64 position; UINT64 cur_ord; UINT64 volume; }; 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; std::wstring m_redis_server; std::wstring m_redis_user; std::wstring m_redis_password; UINT64 m_trader; int m_step; int m_tolerance; };