PluginInstance.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #pragma once
  2. #include <string>
  3. #include <mutex>
  4. class CPluginInstance
  5. : public IMTServerPlugin
  6. , public IMTConPluginSink
  7. , public IMTOrderSink
  8. , public IMTDealSink
  9. {
  10. public:
  11. CPluginInstance();
  12. virtual ~CPluginInstance();
  13. virtual void Release();
  14. virtual MTAPIRES Start(IMTServerAPI* server);
  15. virtual MTAPIRES Stop();
  16. virtual void OnPluginUpdate(const IMTConPlugin* plugin);
  17. virtual void OnOrderAdd(const IMTOrder* order);
  18. virtual void OnOrderUpdate(const IMTOrder* order);
  19. virtual void OnOrderDelete(const IMTOrder* order);
  20. virtual void OnOrderClean(const UINT64 login);
  21. virtual void OnOrderSync();
  22. virtual void OnDealAdd(const IMTDeal* deal);
  23. virtual void OnDealUpdate(const IMTDeal* deal);
  24. virtual void OnDealDelete(const IMTDeal* deal);
  25. virtual void OnDealClean(const UINT64 login);
  26. virtual void OnDealSync(void);
  27. virtual void OnDealPerform(const IMTDeal* deal, IMTAccount* account, IMTPosition* position);
  28. protected:
  29. virtual MTAPIRES LoadParam();
  30. private:
  31. IMTServerAPI* m_api;
  32. IMTConPlugin* m_config;
  33. MTServerInfo m_info;
  34. std::mutex m_lock;
  35. bool m_enable;
  36. std::wstring m_groups;
  37. std::wstring m_logins;
  38. UINT64 m_trader;
  39. int m_step;
  40. int m_tolerance;
  41. };