00001 #ifndef __emcObjectFiller_h__ 00002 #define __emcObjectFiller_h__ 00003 00004 #include "PHObject.h" 00005 00006 class PHCompositeNode; 00007 00018 class emcObjectFiller : public PHObject 00019 { 00020 00021 public: 00022 00023 emcObjectFiller(); 00024 virtual ~emcObjectFiller() {} 00025 00029 virtual bool canFill(PHObject& destination, 00030 int verbose=0) const = 0; 00031 00034 virtual bool canFill(PHCompositeNode*, 00035 PHObject& destination, 00036 int verbose=0) const 00037 { return canFill(destination); } 00038 00040 virtual bool fill(PHCompositeNode* topNode, 00041 PHObject& destination, 00042 int verbose=0) = 0; 00043 00044 private: 00045 00046 void registerMe(void); 00047 00048 ClassDef(emcObjectFiller,0) 00049 }; 00050 00051 #endif 00052