QueryImp.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. 
  2. #ifndef __QUERY_IMP_H__
  3. #define __QUERY_IMP_H__
  4. #include "servant/QueryF.h"
  5. #include "DbHandle.h"
  6. using namespace tars;
  7. //////////////////////////////////////////////////////
  8. enum FUNID
  9. {
  10. FUNID_findObjectById = 0,
  11. FUNID_findObjectById4Any = 1,
  12. FUNID_findObjectById4All = 2,
  13. FUNID_findObjectByIdInSameGroup = 3,
  14. FUNID_findObjectByIdInSameStation = 4,
  15. FUNID_findObjectByIdInSameSet = 5
  16. };
  17. //////////////////////////////////////////////////////
  18. /**
  19. * 对象查询接口类
  20. */
  21. class QueryImp: public QueryF
  22. {
  23. public:
  24. /**
  25. * 构造函数
  26. */
  27. QueryImp(){};
  28. /**
  29. * 初始化
  30. */
  31. virtual void initialize();
  32. /**
  33. ** 退出
  34. */
  35. virtual void destroy() {};
  36. /**
  37. * 根据id获取所有该对象的活动endpoint列表
  38. */
  39. virtual vector<EndpointF> findObjectById(const string & id, tars::CurrentPtr current);
  40. /**
  41. * 根据id获取所有对象,包括活动和非活动对象
  42. */
  43. virtual tars::Int32 findObjectById4Any(const std::string & id, vector<tars::EndpointF> &activeEp, vector<tars::EndpointF> &inactiveEp, tars::CurrentPtr current);
  44. /**
  45. * 根据id获取对象所有endpoint列表
  46. */
  47. Int32 findObjectById4All(const std::string & id, vector<tars::EndpointF> &activeEp, vector<tars::EndpointF> &inactiveEp, tars::CurrentPtr current);
  48. /**
  49. * 根据id获取对象同组endpoint列表
  50. */
  51. Int32 findObjectByIdInSameGroup(const std::string & id, vector<tars::EndpointF> &activeEp, vector<tars::EndpointF> &inactiveEp, tars::CurrentPtr current);
  52. /**
  53. * 根据id获取对象指定归属地的endpoint列表
  54. */
  55. Int32 findObjectByIdInSameStation(const std::string & id, const std::string & sStation, vector<tars::EndpointF> &activeEp, vector<tars::EndpointF> &inactiveEp, tars::CurrentPtr current);
  56. /**
  57. * 根据id获取对象同set endpoint列表
  58. */
  59. Int32 findObjectByIdInSameSet(const std::string & id,const std::string & setId,vector<tars::EndpointF> &activeEp,vector<tars::EndpointF> &inactiveEp, tars::CurrentPtr current);
  60. private:
  61. /**
  62. * 打印按天日志
  63. */
  64. void doDaylog(const FUNID eFnId,const string& id,const vector<tars::EndpointF> &activeEp, const vector<tars::EndpointF> &inactiveEp, const tars::CurrentPtr& current,const std::ostringstream& os,const string& sSetid="");
  65. /**
  66. * 转化成字符串
  67. */
  68. string eFunTostr(const FUNID eFnId);
  69. protected:
  70. //数据库操作
  71. CDbHandle _db;
  72. };
  73. #endif