/home/coin/SVN-release/OS-2.1.1/OS/examples/branchCutPriceTSP/Member/OS_user_data.cpp

Go to the documentation of this file.
00001 // Last edit: 5/5/04
00002 //
00003 // Name:     OS_user_data.cpp
00004 // Author:   Francois Margot
00005 //           Tepper School of Business
00006 //           Carnegie Mellon University, Pittsburgh, PA
00007 //           email: fmargot@andrew.cmu.edu
00008 // Date:     12/28/03
00009 //-----------------------------------------------------------------------------
00010 // Copyright (C) 2003, Francois Margot.  All Rights Reserved.
00011 
00012 #include "BCP_buffer.hpp"
00013 #include "OS_user_data.hpp"
00014 
00015 
00016 using namespace std;
00017 
00018 /****************************************************************************/
00019   MY_user_data::MY_user_data(const int max_size)
00020     : is_processed(0) {
00021 
00022   // Normally, no modifications required, except possibly modifying
00023   // the parameters to the constructor
00024 
00025   p_rud = new real_user_data(max_size);
00026 }
00027 
00028 /****************************************************************************/
00029 MY_user_data::MY_user_data(BCP_buffer& buf)
00030 {
00031   // Normally, no modifications required.
00032 
00033   buf.unpack(is_processed);
00034   buf.unpack(p_rud);
00035 }
00036 
00037 /****************************************************************************/
00038 MY_user_data::~MY_user_data() { 
00039 
00040   // Normally, no modifications required.
00041 
00042   if(is_processed && (p_rud != NULL)) {
00043     delete p_rud;
00044     p_rud = NULL;
00045   }
00046 }
00047 
00048 /****************************************************************************/
00049 void
00050 MY_user_data::pack(BCP_buffer& buf) const
00051 {
00052   // Normally, no modifications required.
00053 
00054   buf.pack(is_processed);
00055   buf.pack(p_rud);
00056 } /* pack */
00057 
00058 
00059 /****************************************************************************/
00060 void
00061 MY_user_data::print() const
00062 {
00063   // Normally, no modifications required.
00064 
00065   printf("is_processed: %d\n", is_processed);
00066   if(p_rud != NULL) {
00067     p_rud->print();
00068   }
00069 } /* print */
00070 
00071 
00072 /****************************************************************************/
00073 real_user_data::real_user_data(const int max_size) {
00074 
00075   /* Add : initialize fields of real_user_data */
00076 
00077   max_card_set_zero = max_size;
00078   card_set_zero = 0;
00079   set_zero = new int[max_card_set_zero];
00080 }
00081 
00082 /****************************************************************************/
00083 real_user_data::~real_user_data() { 
00084 
00085   /* Add : deletion of complex fields in real_user_data */
00086 
00087   delete[] set_zero;
00088 }
00089 
00090 /****************************************************************************/
00091 void
00092 real_user_data::print() const {
00093 
00094   /* Add : print fields of real_user_data */
00095 
00096   printf("max_card_set_zero: %d\n", max_card_set_zero);
00097   printf("card_set_zero: %d\n", card_set_zero);
00098   if(card_set_zero > 0) {
00099     printf("set_zero:\n");
00100     for(int i=0; i<card_set_zero; i++) {
00101       printf(" %4d", set_zero[i]);
00102     }
00103     printf("\n");
00104   }
00105   printf("\n");
00106 } /* print */
00107 
00108 

Generated on Mon May 3 03:05:22 2010 by  doxygen 1.4.7