BCP_node_change.cpp
Go to the documentation of this file.
1 // Copyright (C) 2000, International Business Machines
2 // Corporation and others. All Rights Reserved.
3 #include "BCP_node_change.hpp"
4 #include "BCP_warmstart.hpp"
5 #include "BCP_buffer.hpp"
6 #include "BCP_USER.hpp"
7 
8 //#############################################################################
9 
11  core_change(), var_change(), cut_change(), warmstart(0) {}
12 
14  const bool def, BCP_buffer& buf) :
15  core_change(), var_change(), cut_change(), warmstart(0)
16 {
17  unpack(packer, def, buf);
18 }
19 
21  delete warmstart;
22 }
23 
24 //#############################################################################
25 
26 void
27 BCP_node_change::pack(BCP_user_pack* packer, const bool report_default,
28  BCP_buffer& buf) const
29 {
30  core_change.pack(buf);
31  var_change.pack(buf);
32  cut_change.pack(buf);
33  const bool has_ws = warmstart != NULL;
34  buf.pack(has_ws);
35  if (has_ws) {
36  packer->pack_warmstart(warmstart, buf, report_default);
37  }
38 }
39 
40 //=============================================================================
41 
42 void
43 BCP_node_change::unpack(BCP_user_pack* packer, const bool report_default,
44  BCP_buffer& buf)
45 {
46  core_change.unpack(buf);
47  var_change.unpack(buf);
48  cut_change.unpack(buf);
49  bool has_ws;
50  buf.unpack(has_ws);
51  if (has_ws) {
52  warmstart = packer->unpack_warmstart(buf, report_default);
53  }
54 }
void unpack(BCP_user_pack *packer, const bool def, BCP_buffer &buf)
BCP_buffer & pack(const T &value)
Pack a single object of type T.
Definition: BCP_buffer.hpp:177
BCP_buffer & unpack(T &value)
Unpack a single object of type T.
Definition: BCP_buffer.hpp:186
void pack(BCP_user_pack *packer, const bool def, BCP_buffer &buf) const
void pack(BCP_buffer &buf) const
Pack the core change into the buffer.
void pack(BCP_buffer &buf) const
virtual BCP_warmstart * unpack_warmstart(BCP_buffer &buf, bool report_if_default=false)
Unpack warmstarting information.
Definition: BCP_USER.hpp:74
BCP_problem_core_change core_change
virtual void pack_warmstart(const BCP_warmstart *ws, BCP_buffer &buf, bool report_if_default=false)
Pack warmstarting information.
Definition: BCP_USER.hpp:63
BCP_obj_set_change cut_change
void unpack(BCP_buffer &buf)
Unpack the core change data from the buffer.
void unpack(BCP_buffer &buf)
This class describes the message buffer used for all processes of BCP.
Definition: BCP_buffer.hpp:39
BCP_obj_set_change var_change
BCP_warmstart * warmstart