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, DTG 00012 00013 #ifndef _EBGRAPHFACTORY_H_ 00014 #define _EBGRAPHFACTORY_H_ 00015 00016 #include "Box.H" 00017 #include "BoxLayoutData.H" 00018 #include "EBGraph.H" 00019 #include "NamespaceHeader.H" 00020 00021 /// Factory class to produce EBGraph(es) 00022 /** 00023 This is needed for LevelData construction. 00024 */ 00025 class EBGraphFactory 00026 : public DataFactory<EBGraph> 00027 { 00028 public: 00029 /// 00030 /** 00031 Creates an undefined EBGraph. 00032 */ 00033 virtual EBGraph* create(const Box& a_box, int a_ncomps, 00034 const DataIndex& a_datInd) const; 00035 00036 /// 00037 /** 00038 */ 00039 EBGraphFactory(const ProblemDomain& a_domain); 00040 00041 /// 00042 /** 00043 */ 00044 virtual ~EBGraphFactory(); 00045 00046 //return true if copy and construction are thread safe 00047 virtual bool threadSafe() const 00048 { 00049 return false; 00050 } 00051 private: 00052 EBGraphFactory() 00053 { 00054 MayDay::Error("ebisboxfactory uses strong construction"); 00055 } 00056 ProblemDomain m_domain; 00057 }; 00058 #include "NamespaceFooter.H" 00059 #endif