/home/coin/SVN-release/Smi-0.81.0/Smi/src/SmiCoreCombineRule.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2004, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 //
00004 // SmiCoreCombineRule.hpp: interface for the SmiCoreCombineRule classes.
00005 //
00006 //
00007 // Alan King 
00008 // 9 March 2004
00010 
00011 #if !defined(SmiCoreCombineRule_HPP)
00012 #define SmiCoreCombineRule_HPP
00013 
00014 #include "CoinPragma.hpp"
00015 #include "CoinPackedVector.hpp"
00016 #include <string>
00036 class SmiCoreCombineRule  
00037 {
00038 public:
00041 
00042         virtual void Process(double *d1, int o1, const CoinPackedVector &cpv2, char *type=0)=0;
00043         virtual CoinPackedVector * Process(CoinPackedVector *cpv1, CoinPackedVector *cpv2, char *type=0)=0;
00044         virtual ~SmiCoreCombineRule(){};
00045 };
00046 
00048 // SmiCoreCombineReplace
00049 // -- concrete "replace" rule -- singleton pattern
00051 class SmiCoreCombineReplace : public SmiCoreCombineRule
00052 {
00053 public:
00054         static SmiCoreCombineReplace * Instance();
00055         virtual void Process(double *d1, int o1, const CoinPackedVector &cpv2, char *type=0);
00056         virtual CoinPackedVector * Process(CoinPackedVector *cpv1, CoinPackedVector *cpv2, char *type=0);
00057 protected:
00058         SmiCoreCombineReplace(){}
00059 private:
00060         static SmiCoreCombineReplace * _instance;
00061 };
00062 
00064 // SmiCoreCombineAdd
00065 // -- concrete "add" rule -- singleton pattern
00067 class SmiCoreCombineAdd : public SmiCoreCombineRule
00068 {
00069 public:
00070         static SmiCoreCombineAdd * Instance();
00071         virtual void Process(double *d1, int o1, const CoinPackedVector &cpv2, char* type=0);
00072         virtual CoinPackedVector * Process(CoinPackedVector *cpv1, CoinPackedVector *cpv2, char* type=0);
00073 protected:
00074         SmiCoreCombineAdd(){}
00075 private:
00076         static SmiCoreCombineAdd * _instance;
00077 };
00078 
00079 
00080 #endif // !defined(SmiCoreCombineRule_HPP)

Generated on Fri May 16 19:29:35 2008 by  doxygen 1.4.7