00001 // Last edit: 5/20/07 00002 // 00003 // Name: OS_packer.hpp 00004 // Author: Francois Margot 00005 // Tepper School of Business 00006 // Carnegie Mellon University, Pittsburgh, PA 15213 00007 // email: fmargot@andrew.cmu.edu 00008 // Date: 5/18/07 00009 //----------------------------------------------------------------------------- 00010 // Copyright (C) 2007, Francois Margot, IBM and others. All Rights Reserved. 00011 00012 #ifndef _OS_PACKER_H 00013 #define _OS_PACKER_H 00014 00015 #include "BCP_USER.hpp" 00016 00017 class BCP_buffer; 00018 class OS_user_data; 00019 00022 class OS_packer : public BCP_user_pack { 00023 public: 00024 00025 //------------------------------------------------------------------------- 00027 /* 00028 virtual void 00029 pack_warmstart(const BCP_warmstart* ws, BCP_buffer& buf, 00030 bool report_if_default = false) 00031 { 00032 if (report_if_default) { 00033 printf("BCP_user_pack : default pack_warmstart() executed.\n"); 00034 } 00035 BCP_pack_warmstart(ws, buf); 00036 } 00037 */ 00039 /* 00040 virtual BCP_warmstart* 00041 unpack_warmstart(BCP_buffer& buf, 00042 bool report_if_default = false) 00043 { 00044 if (report_if_default) { 00045 printf("BCP_user_pack : default unpack_warmstart() executed.\n"); 00046 } 00047 return BCP_unpack_warmstart(buf); 00048 } 00049 */ 00050 00051 //------------------------------------------------------------------------- 00055 virtual void pack_var_algo(const BCP_var_algo* var, BCP_buffer& buf); 00056 00057 virtual BCP_var_algo* unpack_var_algo(BCP_buffer& buf); 00058 00059 //------------------------------------------------------------------------- 00061 virtual void pack_cut_algo(const BCP_cut_algo* cut, BCP_buffer& buf); 00062 00064 virtual BCP_cut_algo* unpack_cut_algo(BCP_buffer& buf); 00065 00066 //------------------------------------------------------------------------- 00068 virtual void pack_user_data(const BCP_user_data* ud, BCP_buffer& buf); 00069 00071 virtual BCP_user_data* unpack_user_data(BCP_buffer& buf); 00072 }; 00073 00074 00075 #endif 00076 00077