branchrule.h

Go to the documentation of this file.
00001 
00047 #ifndef ABA_BRANCHRULE_H
00048 #define ABA_BRANCHRULE_H
00049 
00050 #include "abacus/array.h"
00051 
00052 class ABA_MASTER;
00053 class ABA_SUB;
00054 class ABA_LPSUB;
00055 
00056 #ifdef ABACUS_PARALLEL
00057 #define SETBRANCHRULE_CLASSID   9001            // preliminary
00058 #define VALBRANCHRULE_CLASSID   9002            // preliminary
00059 #define CONBRANCHRULE_CLASSID   9003            // preliminary
00060 #define BOUNDBRANCHRULE_CLASSID 9004            // preliminary
00061 #endif
00062 
00063   class  ABA_BRANCHRULE :  public ABA_ABACUSROOT  { 
00064     public: 
00065 
00070       ABA_BRANCHRULE(ABA_MASTER *master);
00071 
00074       virtual ~ABA_BRANCHRULE();
00075 #ifdef ABACUS_PARALLEL
00076 
00082       ABA_BRANCHRULE(ABA_MASTER *master, ABA_MESSAGE &msg);
00083 
00093       virtual void pack(ABA_MESSAGE &msg) const;
00094       virtual int classId() const = 0;
00095 #endif
00096 
00104       virtual int extract(ABA_SUB *sub) = 0;
00105 
00118       virtual void extract(ABA_LPSUB *lp);
00119 
00128       virtual void unExtract(ABA_LPSUB *lp);
00129 
00145       virtual bool branchOnSetVar();
00146 
00155       virtual void initialize(ABA_SUB* sub);
00156     protected: 
00157       ABA_MASTER *master_;
00158   };
00159 
00160 #endif  // !ABA_BRANCHRULE_H
00161 

Generated on Tue Aug 14 18:09:53 2007 for ABACUS by  doxygen 1.5.1