PluginInstance.h 1.4 KB

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