#ifndef SendJOB_HPP #define SendJOB_HPP #include #include #include "PlaterJob.hpp" #include "PrintJob.hpp" namespace fs = boost::filesystem; namespace Slic3r { namespace GUI { typedef std::function OnUpdateStatusFn; typedef std::function WasCancelledFn; class SendJob : public PlaterJob { PrintPrepareData job_data; std::string m_dev_id; bool m_job_finished{ false }; int m_print_job_completed_id = 0; std::function m_success_fun{nullptr}; std::function m_enter_ip_address_fun{nullptr}; protected: void prepare() override; void on_exception(const std::exception_ptr &) override; public: SendJob(std::shared_ptr pri, Plater *plater, std::string dev_id = ""); std::string m_project_name; std::string m_dev_ip; std::string m_access_code; bool m_local_use_ssl{false}; std::string task_bed_type; std::string task_ams_mapping; std::string connection_type; bool cloud_print_only { false }; bool has_sdcard { false }; bool task_use_ams { true }; wxWindow* m_parent{nullptr}; int status_range() const override { return 100; } wxString get_http_error_msg(unsigned int status, std::string body); bool is_finished() { return m_job_finished; } void process() override; void on_success(std::function success); void on_enter_ip_address(std::function success); void finalize() override; void set_project_name(std::string name); }; }} #endif