00001 #ifdef CH_LANG_CC 00002 /* 00003 * _______ __ 00004 * / ___/ / ___ __ _ / / ___ 00005 * / /__/ _ \/ _ \/ V \/ _ \/ _ \ 00006 * \___/_//_/\___/_/_/_/_.__/\___/ 00007 * Please refer to Copyright.txt, in Chombo's root directory. 00008 */ 00009 #endif 00010 00011 // ANAG, LBNL 00012 00013 #ifndef _BASEIFFACTORY_H_ 00014 #define _BASEIFFACTORY_H_ 00015 00016 #include <cmath> 00017 #include <cstdlib> 00018 #include "Vector.H" 00019 #include "EBISLayout.H" 00020 #include "BaseIFFAB.H" 00021 #include "DataIndex.H" 00022 #include "NamespaceHeader.H" 00023 00024 00026 00030 template <class T> 00031 class BaseIFFactory 00032 : public DataFactory<BaseIFFAB<T> > 00033 { 00034 public: 00036 00045 virtual BaseIFFAB<T>* create(const Box& a_box, int a_ncomps, 00046 const DataIndex& a_dit) const; 00047 00049 00052 BaseIFFactory(const EBISLayout& a_ebisl, 00053 const LayoutData<IntVectSet>& a_sets, 00054 const int& a_facedir ); 00055 00057 virtual ~BaseIFFactory(); 00058 00059 private: 00061 EBISLayout m_ebisl; 00062 00064 LayoutData<IntVectSet> m_sets; 00065 00067 int m_facedir; 00068 00069 //disallowed constructors and all that 00070 BaseIFFactory(const BaseIFFactory<T>& a_inputs) 00071 { 00072 MayDay::Error("disallowed constructor"); 00073 } 00074 BaseIFFactory() 00075 { 00076 MayDay::Error("disallowed constructor"); 00077 } 00078 void operator=(const BaseIFFactory<T>& a_inputs) 00079 { 00080 MayDay::Error("disallowed constructor"); 00081 } 00082 00083 }; 00084 00085 #include "NamespaceFooter.H" 00086 00087 //implementation 00088 #include "BaseIFFactoryI.H" 00089 #endif