00001 // (C) Copyright International Business Machines Corporation 2006, 2007 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // Authors : 00006 // Laszlo Ladanyi, International Business Machines Corporation 00007 // Pierre Bonami, Carnegie Mellon University 00008 00009 #ifndef _BB_CUT_H 00010 #define _BB_CUT_H 00011 00012 #include "BCP_cut.hpp" 00013 #include "BCP_mempool.hpp" 00014 #include "OsiRowCut.hpp" 00015 00016 class BCP_buffer; 00017 00020 /****************************************************************************/ 00021 class BB_cut : public BCP_cut_algo, public OsiRowCut { 00022 00023 private: 00024 00025 static BCP_MemPool memPool; 00026 00027 public: 00028 00029 static inline void * operator new(size_t size) { 00030 return memPool.alloc(size); 00031 } 00032 00033 static inline void operator delete(void *p, size_t size) { 00034 memPool.free(p, size); 00035 } 00036 00038 void pack(BCP_buffer& buf) const; 00039 00042 00043 BB_cut(BCP_buffer& buf); 00044 00046 BB_cut(const OsiRowCut& cut); 00047 00049 ~BB_cut() {} 00050 }; 00051 00052 #endif