#include <BCP_tm_node.hpp>
Collaboration diagram for BCP_tm_node_to_send:
Public Member Functions | |
BCP_tm_node_to_send (BCP_tm_prob &p, const BCP_tm_node *node, const BCP_message_tag tag) | |
~BCP_tm_node_to_send () | |
bool | send () |
return true or false depending on whether the node was really sent out or it's still waiting for some data | |
bool | receive_node_desc (BCP_buffer &buf) |
return true if has everything to send the thing off to the LP. | |
bool | receive_vars (BCP_buffer &buf) |
return true if has everything to send the thing off to the LP. | |
bool | receive_cuts (BCP_buffer &buf) |
return true if has everything to send the thing off to the LP. | |
Static Public Attributes | |
static std::map< int, BCP_tm_node_to_send * > | waiting |
Private Attributes | |
BCP_tm_prob & | p |
BCP_message_tag | msgtag |
the message tag to be used when finally the node is sent off | |
const int | ID |
An identifier of this object. | |
const BCP_tm_node * | node |
const BCP_tm_node ** | root_path |
the path to the root. | |
int * | child_index |
at each level the index of the child in the parent's list | |
BCP_tm_node_data * | node_data_on_root_path |
the node data on each level (well, up to the point where we have encountered an explicit description for all kind of data) | |
int | level |
the level of node to be sent | |
int | explicit_core_level |
where the various pieces start to be explicit (or wrt. | |
int | explicit_var_level |
int | explicit_cut_level |
int | explicit_ws_level |
int | explicit_all_level |
int | missing_desc_num |
-1/nonneg unset/value : how many desc is missing | |
int | missing_var_num |
-1/nonneg unset/value : how many var is missing | |
int | missing_cut_num |
-1/nonneg unset/value : how many cut is missing | |
BCP_obj_set_change | var_set |
The explicit description of the vars/cuts of the parent as a BCP_obj_set_change and the vars/cuts themselves (the change contains only indices!). | |
BCP_obj_set_change | cut_set |
BCP_vec< Coin::SmartPtr< BCP_var > > | vars |
The list of vars/cuts of the node when the changes of the node are applied to var_set and cut_set . | |
BCP_vec< Coin::SmartPtr< BCP_cut > > | cuts |
Definition at line 241 of file BCP_tm_node.hpp.
BCP_tm_node_to_send::BCP_tm_node_to_send | ( | BCP_tm_prob & | p, | |
const BCP_tm_node * | node, | |||
const BCP_message_tag | tag | |||
) |
Definition at line 30 of file BCP_tm_msg_node_send.cpp.
References BCP_tm_node_data::_desc, BCP_tm_node_data::_user, BCP_Storage_WrtParent, child_index, explicit_all_level, explicit_core_level, explicit_cut_level, explicit_var_level, explicit_ws_level, ID, level, n, node, node_data_on_root_path, root_path, and waiting.
BCP_tm_node_to_send::~BCP_tm_node_to_send | ( | ) |
Definition at line 97 of file BCP_tm_msg_node_send.cpp.
References child_index, node_data_on_root_path, and root_path.
bool BCP_tm_node_to_send::send | ( | ) |
return true or false depending on whether the node was really sent out or it's still waiting for some data
Definition at line 173 of file BCP_tm_msg_node_send.cpp.
References BCP_tm_node::_core_storage, BCP_tm_node::_cut_storage, BCP_tm_node_data::_desc, BCP_tm_node::_index, BCP_obj_set_change::_new_objs, BCP_obj_set_change::_storage, BCP_tm_node_data::_user, BCP_tm_node::_var_storage, BCP_tm_node::_ws_storage, BCP_DoDive, BCP_Msg_CutListRequest, BCP_Msg_NodeListRequest, BCP_Msg_VarListRequest, BCP_Storage_Explicit, BCP_Storage_WrtParent, BCP_TestBeforeDive, BCP_tm_node::cg, BCP_vec< T >::clear(), BCP_buffer::clear(), BCP_tm_prob::core_as_change, BCP_tm_node::cp, BCP_tm_prob::current_phase_colgen, cut_set, cuts, BCP_tm_prob::cuts_local, BCP_tm_prob::cuts_remote, BCP_tm_user::display_node_information(), explicit_all_level, explicit_core_level, explicit_cut_level, explicit_var_level, explicit_ws_level, ID, BCP_tm_node::index(), level, BCP_tm_node::lp, BCP_problem_core_change::make_wrtcore_if_shorter(), missing_cut_num, missing_desc_num, missing_var_num, BCP_tm_prob::msg_buf, BCP_tm_prob::msg_env, msgtag, node, node_data_on_root_path, p, BCP_obj_set_change::pack(), BCP_problem_core_change::pack(), BCP_buffer::pack(), BCP_tm_prob::pack_cut(), BCP_user_pack::pack_user_data(), BCP_tm_prob::pack_var(), BCP_user_pack::pack_warmstart(), BCP_tm_prob::packer, BCP_tm_prob::param(), BCP_tm_node::parent(), BCP_tm_par::ReportWhenDefaultIsExecuted, BCP_vec< T >::reserve(), BCP_tm_prob::root_node_sent_, root_path, BCP_tm_prob::search_tree, BCP_message_environment::send(), BCP_vec< T >::size(), BCP_tm_prob::start_time, BCP_vec< T >::unchecked_push_back(), BCP_tm_par::UnconditionalDiveProbability, BCP_warmstart::update(), BCP_problem_core_change::update(), BCP_obj_set_change::update(), BCP_tm_prob::user, var_set, vars, BCP_tm_prob::vars_local, BCP_tm_prob::vars_remote, BCP_tm_node::vg, and BCP_tm_node::vp.
Referenced by BCP_tm_start_one_node(), receive_cuts(), receive_node_desc(), and receive_vars().
bool BCP_tm_node_to_send::receive_node_desc | ( | BCP_buffer & | buf | ) |
return true if has everything to send the thing off to the LP.
Actually, it sends it off, so if this method returns true then then object can be deleted
Definition at line 107 of file BCP_tm_msg_node_send.cpp.
References BCP_tm_node_data::_desc, BCP_tm_node_data::_user, missing_desc_num, node_data_on_root_path, p, BCP_tm_prob::packer, BCP_tm_prob::param(), BCP_tm_par::ReportWhenDefaultIsExecuted, root_path, send(), BCP_buffer::unpack(), and BCP_user_pack::unpack_user_data().
Referenced by BCP_tm_prob::process_message().
bool BCP_tm_node_to_send::receive_vars | ( | BCP_buffer & | buf | ) |
return true if has everything to send the thing off to the LP.
Actually, it sends it off, so if this method returns true then then object can be deleted
Definition at line 133 of file BCP_tm_msg_node_send.cpp.
References BCP_obj_set_change::_new_objs, missing_cut_num, missing_var_num, p, BCP_tm_prob::packer, send(), BCP_buffer::unpack(), BCP_user_pack::unpack_var_algo(), var_set, and vars.
Referenced by BCP_tm_prob::process_message().
bool BCP_tm_node_to_send::receive_cuts | ( | BCP_buffer & | buf | ) |
return true if has everything to send the thing off to the LP.
Actually, it sends it off, so if this method returns true then then object can be deleted
Definition at line 153 of file BCP_tm_msg_node_send.cpp.
References BCP_obj_set_change::_new_objs, cut_set, cuts, missing_cut_num, missing_var_num, p, BCP_tm_prob::packer, send(), BCP_buffer::unpack(), and BCP_user_pack::unpack_cut_algo().
Referenced by BCP_tm_prob::process_message().
std::map< int, BCP_tm_node_to_send * > BCP_tm_node_to_send::waiting [static] |
Definition at line 244 of file BCP_tm_node.hpp.
Referenced by BCP_tm_node_to_send(), and BCP_tm_prob::process_message().
BCP_tm_prob& BCP_tm_node_to_send::p [private] |
Definition at line 247 of file BCP_tm_node.hpp.
Referenced by receive_cuts(), receive_node_desc(), receive_vars(), and send().
BCP_message_tag BCP_tm_node_to_send::msgtag [private] |
the message tag to be used when finally the node is sent off
Definition at line 250 of file BCP_tm_node.hpp.
Referenced by send().
const int BCP_tm_node_to_send::ID [private] |
An identifier of this object.
It is the index of the node we want to send out
Definition at line 254 of file BCP_tm_node.hpp.
Referenced by BCP_tm_node_to_send(), and send().
const BCP_tm_node* BCP_tm_node_to_send::node [private] |
const BCP_tm_node** BCP_tm_node_to_send::root_path [private] |
the path to the root.
The root is root_path[0], the node itself is in root_path[level]
Definition at line 259 of file BCP_tm_node.hpp.
Referenced by BCP_tm_node_to_send(), receive_node_desc(), send(), and ~BCP_tm_node_to_send().
int* BCP_tm_node_to_send::child_index [private] |
at each level the index of the child in the parent's list
Definition at line 261 of file BCP_tm_node.hpp.
Referenced by BCP_tm_node_to_send(), and ~BCP_tm_node_to_send().
the node data on each level (well, up to the point where we have encountered an explicit description for all kind of data)
Definition at line 264 of file BCP_tm_node.hpp.
Referenced by BCP_tm_node_to_send(), receive_node_desc(), send(), and ~BCP_tm_node_to_send().
int BCP_tm_node_to_send::level [private] |
the level of node to be sent
Definition at line 267 of file BCP_tm_node.hpp.
Referenced by BCP_tm_node_to_send(), and send().
int BCP_tm_node_to_send::explicit_core_level [private] |
where the various pieces start to be explicit (or wrt.
root/core)
Definition at line 270 of file BCP_tm_node.hpp.
Referenced by BCP_tm_node_to_send(), and send().
int BCP_tm_node_to_send::explicit_var_level [private] |
int BCP_tm_node_to_send::explicit_cut_level [private] |
int BCP_tm_node_to_send::explicit_ws_level [private] |
int BCP_tm_node_to_send::explicit_all_level [private] |
int BCP_tm_node_to_send::missing_desc_num [private] |
-1/nonneg unset/value : how many desc is missing
Definition at line 277 of file BCP_tm_node.hpp.
Referenced by receive_node_desc(), and send().
int BCP_tm_node_to_send::missing_var_num [private] |
-1/nonneg unset/value : how many var is missing
Definition at line 279 of file BCP_tm_node.hpp.
Referenced by receive_cuts(), receive_vars(), and send().
int BCP_tm_node_to_send::missing_cut_num [private] |
-1/nonneg unset/value : how many cut is missing
Definition at line 281 of file BCP_tm_node.hpp.
Referenced by receive_cuts(), receive_vars(), and send().
The explicit description of the vars/cuts of the parent as a BCP_obj_set_change and the vars/cuts themselves (the change contains only indices!).
Definition at line 286 of file BCP_tm_node.hpp.
Referenced by receive_vars(), and send().
BCP_vec<Coin::SmartPtr<BCP_var> > BCP_tm_node_to_send::vars [private] |
The list of vars/cuts of the node when the changes of the node are applied to var_set
and cut_set
.
Definition at line 290 of file BCP_tm_node.hpp.
Referenced by receive_vars(), and send().
BCP_vec<Coin::SmartPtr<BCP_cut> > BCP_tm_node_to_send::cuts [private] |