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