/home/coin/SVN-release/OS-2.2.0/Bcp/examples/BAC/Member/BB_user_data.cpp

Go to the documentation of this file.
00001 // Last edit: 5/19/07
00002 //
00003 // Name:     BB_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 "BB_user_data.hpp"
00014 
00015 using namespace std;
00016 
00017 /****************************************************************************/
00018   MY_user_data::MY_user_data(const int max_size)
00019     : is_processed(0) {
00020 
00021   // Normally, no modifications required, except possibly modifying
00022   // the parameters to the constructor
00023 
00024   p_rud = new real_user_data(max_size);
00025 }
00026 
00027 /****************************************************************************/
00028 MY_user_data::MY_user_data(BCP_buffer& buf)
00029 {
00030   // Normally, no modifications required.
00031 
00032   buf.unpack(is_processed);
00033   buf.unpack(p_rud);
00034 }
00035 
00036 /****************************************************************************/
00037 MY_user_data::~MY_user_data() { 
00038 
00039   // Normally, no modifications required.
00040 
00041   if(is_processed && (p_rud != NULL)) {
00042     delete p_rud;
00043     p_rud = NULL;
00044   }
00045 }
00046 
00047 /****************************************************************************/
00048 void
00049 MY_user_data::pack(BCP_buffer& buf) const
00050 {
00051   // Normally, no modifications required.
00052 
00053   buf.pack(is_processed);
00054   buf.pack(p_rud);
00055 } /* pack */
00056 
00057 
00058 /****************************************************************************/
00059 void
00060 MY_user_data::print() const
00061 {
00062   // Normally, no modifications required.
00063 
00064   printf("is_processed: %d\n", is_processed);
00065   if(p_rud != NULL) {
00066     p_rud->print();
00067   }
00068 } /* print */
00069 
00070 
00071 /****************************************************************************/
00072 real_user_data::real_user_data(const int max_size) {
00073 
00074   /* Add : initialize fields of real_user_data */
00075 
00076   max_card_set_zero = max_size;
00077   card_set_zero = 0;
00078   set_zero = new int[max_card_set_zero];
00079 }
00080 
00081 /****************************************************************************/
00082 real_user_data::~real_user_data() { 
00083 
00084   /* Add : deletion of complex fields in real_user_data */
00085 
00086   delete[] set_zero;
00087 }
00088 
00089 /****************************************************************************/
00090 void
00091 real_user_data::print() const {
00092 
00093   /* Add : print fields of real_user_data */
00094 
00095   printf("max_card_set_zero: %d\n", max_card_set_zero);
00096   printf("card_set_zero: %d\n", card_set_zero);
00097   if(card_set_zero > 0) {
00098     printf("set_zero:\n");
00099     for(int i=0; i<card_set_zero; i++) {
00100       printf(" %4d", set_zero[i]);
00101     }
00102     printf("\n");
00103   }
00104   printf("\n");
00105 } /* print */

Generated on Thu Aug 5 03:02:51 2010 by  doxygen 1.4.7