BCP_tm_node_to_send Class Reference

#include <BCP_tm_node.hpp>

Collaboration diagram for BCP_tm_node_to_send:

Collaboration graph
[legend]
List of all members.

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_probp
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_nodenode
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_datanode_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

Detailed Description

Definition at line 241 of file BCP_tm_node.hpp.


Constructor & Destructor Documentation

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.


Member Function Documentation

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().


Member Data Documentation

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]

Definition at line 256 of file BCP_tm_node.hpp.

Referenced by BCP_tm_node_to_send(), and send().

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().

BCP_tm_node_data* BCP_tm_node_to_send::node_data_on_root_path [private]

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]

Definition at line 271 of file BCP_tm_node.hpp.

Referenced by BCP_tm_node_to_send(), and send().

int BCP_tm_node_to_send::explicit_cut_level [private]

Definition at line 272 of file BCP_tm_node.hpp.

Referenced by BCP_tm_node_to_send(), and send().

int BCP_tm_node_to_send::explicit_ws_level [private]

Definition at line 273 of file BCP_tm_node.hpp.

Referenced by BCP_tm_node_to_send(), and send().

int BCP_tm_node_to_send::explicit_all_level [private]

Definition at line 274 of file BCP_tm_node.hpp.

Referenced by BCP_tm_node_to_send(), and send().

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().

BCP_obj_set_change BCP_tm_node_to_send::var_set [private]

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_obj_set_change BCP_tm_node_to_send::cut_set [private]

Definition at line 287 of file BCP_tm_node.hpp.

Referenced by receive_cuts(), 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]

Definition at line 291 of file BCP_tm_node.hpp.

Referenced by receive_cuts(), and send().


The documentation for this class was generated from the following files:
Generated on Thu Nov 10 03:12:17 2011 by  doxygen 1.4.7