PluginInstance.h 1.2 KB

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