00001 #ifndef MCF3_tm_hpp 00002 #define MCF3_tm_hpp 00003 00004 #include "BCP_buffer.hpp" 00005 #include "BCP_tm_user.hpp" 00006 #include "BCP_parameters.hpp" 00007 #include "MCF3_par.hpp" 00008 #include "MCF3_var.hpp" 00009 #include "MCF3_data.hpp" 00010 00011 class MCF3_tm : public BCP_tm_user 00012 { 00013 public: 00014 BCP_parameter_set<MCF3_par> par; 00015 MCF3_data data; 00016 00017 public: 00018 MCF3_tm() {} 00019 virtual ~MCF3_tm() {} 00020 00021 virtual void pack_module_data(BCP_buffer& buf, BCP_process_t ptype); 00022 virtual void pack_var_algo(const BCP_var_algo* var, BCP_buffer& buf) { 00023 MCF3_pack_var(var, buf); 00024 } 00025 virtual BCP_var_algo* unpack_var_algo(BCP_buffer& buf) { 00026 return MCF3_unpack_var(buf); 00027 } 00028 00029 virtual void pack_user_data(const BCP_user_data* ud, BCP_buffer& buf) { 00030 const MCF3_user* u = dynamic_cast<const MCF3_user*>(ud); 00031 u->pack(buf); 00032 } 00033 virtual BCP_user_data* unpack_user_data(BCP_buffer& buf) { 00034 MCF3_user* u = new MCF3_user; 00035 u->unpack(buf); 00036 return u; 00037 } 00038 00039 virtual void initialize_core(BCP_vec<BCP_var_core*>& vars, 00040 BCP_vec<BCP_cut_core*>& cuts, 00041 BCP_lp_relax*& matrix); 00042 virtual void create_root(BCP_vec<BCP_var*>& added_vars, 00043 BCP_vec<BCP_cut*>& added_cuts, 00044 BCP_user_data*& user_data, 00045 BCP_pricing_status& pricing_status); 00046 virtual void display_feasible_solution(const BCP_solution* sol); 00047 }; 00048 00049 #endif