00001 #ifndef BOUNDARYFACTORY_H_PROTECTOR 00002 #define BOUNDARYFACTORY_H_PROTECTOR 00003 00004 #include "xmlnode.h" 00005 #include "boundary.h" 00006 #include "afltypes.h" 00007 00008 namespace afl 00009 { 00010 class Boundary; 00011 class Field; 00012 00016 class BoundaryFactory 00017 { 00018 public: 00031 static Boundary* boundary( XMLNode* boundary, size_t dims, const std::string& dirpath, const Field* field ); 00032 00039 static Boundary* getBoundaryRoot( size_t d, const Field* field ); 00040 00041 private: 00048 static void parseSegment(Boundary* ret, XMLNode* s, const std::string& dirpath ); 00049 }; 00050 00051 } 00052 00053 #endif // BOUNDARYFACTORY_H_PROTECTOR 00054