00001 // Copyright (C) 2002, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef CbcCountRowCut_H 00004 #define CbcCountRowCut_H 00005 00006 00007 class OsiCuts; 00008 class OsiRowCut; 00009 class CbcNodeInfo; 00010 00011 //############################################################################# 00032 class CbcCountRowCut : public OsiRowCut { 00033 00034 public: 00035 00038 00040 CbcCountRowCut (); 00041 00043 CbcCountRowCut ( const OsiRowCut &); 00044 00046 CbcCountRowCut(const OsiRowCut &, CbcNodeInfo *, int whichOne, 00047 int whichGenerator=-1); 00048 00055 virtual ~CbcCountRowCut (); 00057 00059 void increment(int change=1); 00060 00062 int decrement(int change=1); 00063 00071 void setInfo(CbcNodeInfo *, int whichOne); 00072 00074 inline int numberPointingToThis() 00075 { return numberPointingToThis_;} 00076 00078 int whichCutGenerator() const 00079 { return whichCutGenerator_;} 00080 00081 #ifdef CHECK_CUT_COUNTS 00082 // Just for printing sanity checks 00083 int tempNumber_; 00084 #endif 00085 00086 private: 00087 00089 CbcCountRowCut(const CbcCountRowCut &); 00090 00092 CbcCountRowCut & operator=(const CbcCountRowCut& rhs); 00093 00095 CbcNodeInfo * owner_; 00096 00099 int ownerCut_; 00100 00102 int numberPointingToThis_; 00103 00105 int whichCutGenerator_; 00106 00107 }; 00108 //#define CBC_DETERMINISTIC_THREAD 00109 00110 #endif