/home/coin/SVN-release/OS-2.4.2/examples/branchCutPrice/Member/OS_user_data.cpp

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

Generated on Wed Nov 30 03:04:10 2011 by  doxygen 1.4.7