acq_vendor.h 943 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef FOUNDATION_IOTACQ_ACQ_H
  2. #define FOUNDATION_IOTACQ_ACQ_H
  3. #include <vendor_global.h>
  4. #include <settings/config_parser.h>
  5. #include <leoyun/yun_rpc.h>
  6. #include <unordered_map>
  7. #include <uv.h>
  8. #include "acq_task.h"
  9. #include <data_acq_task.h>
  10. namespace iot_acq {
  11. class AcqVendor : public vendor::VendorBase {
  12. public:
  13. AcqVendor();
  14. virtual ~AcqVendor();
  15. virtual int Run();
  16. virtual std::string Name();
  17. virtual void Stop(int signal);
  18. protected:
  19. virtual int ParseCmdline(const std::string &optname, const std::string &optarg);
  20. virtual vendor::MyOpt *GetOpts();
  21. virtual int GetOptSize();
  22. private:
  23. settings::ConfigParser configParser_;
  24. uv_handle_t* timerCheck_ = nullptr;
  25. uv_handle_t *eventStart_ = nullptr;
  26. uv_handle_t *eventStop_ = nullptr;
  27. AcqTask *acqTask_ = nullptr;
  28. std::shared_ptr<data_acq::DataAcqTask> dataAcqTask_;
  29. leoyun::RpcListener_t rpcListener_;
  30. };
  31. }
  32. #endif // FOUNDATION_IOTACQ_ACQ_H