commands.h
上传用户:egreat
上传日期:2007-07-13
资源大小:29k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. #ifndef _STOCK_COMMAND_H_
  2. #define _STOCK_COMMAND_H_
  3. #include <boost/tuple/tuple.hpp>
  4. #include <loki/singleton.h>
  5. namespace StockMarket
  6. {
  7. using namespace std;
  8. using namespace boost;
  9. struct InstantTransShareData
  10. {
  11. string current_stock;
  12. };
  13. class InstantTransReq : public Request 
  14. {
  15. public:
  16. InstantTransReq( int count);
  17. InstantTransReq(const string& stock_code,  int count);
  18. char* buff();
  19. ulong len();
  20. void send(TcpSocket& soc);
  21. InstantTransReq& operator++();
  22. operator bool ();
  23.   protected:
  24. #pragma pack(push)
  25. #pragma pack(1)
  26. struct InstantTransStruct
  27. {
  28. InstantTransStruct();
  29. InstantTransStruct(const string& stock_code,  ushort record_offset, ushort record_count );
  30. void set_stock_code(const string& stock_code);
  31. ReqHead header;
  32. ushort location;
  33. char code[MarketInfo::StocksCodeLen];
  34. ushort offset; //  
  35. ushort count; //
  36. }s;
  37. #pragma pack(pop)
  38. public:
  39. typedef map<uint, string> IntStringMap;
  40. private:
  41. bool finished;
  42. string current_stock;
  43. bool all_stock;
  44. uint dt;
  45. };
  46. class InstantTransRes:  public StockRes
  47. {
  48. public:
  49. static recursive_mutex inst_trans_res_map_mutex;
  50.   void operator()();
  51.   };
  52. struct HisTransShareData
  53. {
  54. uint date;
  55. string current_stock;
  56. ushort to_get_offset;
  57. ushort total_got_count;
  58. bool got_one_stock;
  59. };
  60. class HisTransReq : public Request
  61. {
  62. public:
  63. HisTransReq(const string& stock_code,  uint record_date);
  64. HisTransReq(uint record_date);
  65. char* buff();
  66. ulong len();
  67. void send(TcpSocket& soc);
  68. HisTransReq& operator++();
  69. operator bool ();
  70. static const ushort to_get_count = 1800;
  71. protected:
  72. #pragma pack(push)
  73. #pragma pack(1)
  74. struct HisTransStruct //0x0fb5
  75. {
  76. public:
  77. HisTransStruct();
  78. HisTransStruct(const string& stock_code,  uint record_date, ushort record_offset, ushort record_count);
  79. void set_stock_code(const string& stock_code);
  80. void set_offset(ushort off);
  81. ReqHead header;
  82. uint date; // 年月日 20050411 = 0x0131f1e8
  83. ushort location; // ????
  84. char code[6];
  85. ushort offset;
  86. ushort count;
  87. }s;
  88. #pragma pack(pop)
  89. private:
  90. bool finished;
  91. bool all_stock;
  92. string current_stock;
  93. };
  94. class HisTransRes : public StockRes
  95. {
  96. public:
  97. static recursive_mutex his_trans_res_map_mutex;
  98.    void operator()();
  99. };
  100. extern StockRes* CreateInstantTransRes();
  101. extern StockRes* CreateHisTransRes();
  102. }
  103. #endif