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