00001 // This file is part of ff3d - http://www.freefem.org/ff3d 00002 // Copyright (C) 2001, 2002, 2003 Stéphane Del Pino 00003 00004 // This program is free software; you can redistribute it and/or modify 00005 // it under the terms of the GNU General Public License as published by 00006 // the Free Software Foundation; either version 2, or (at your option) 00007 // any later version. 00008 00009 // This program is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 // GNU General Public License for more details. 00013 00014 // You should have received a copy of the GNU General Public License 00015 // along with this program; if not, write to the Free Software Foundation, 00016 // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 00018 // $Id: WriterBase.hpp,v 1.2 2007/11/17 23:36:36 delpinux Exp $ 00019 00020 #ifndef WRITER_BASE_HPP 00021 #define WRITER_BASE_HPP 00022 00023 #include <ReferenceCounting.hpp> 00024 #include <FileDescriptor.hpp> 00025 00026 #include <string> 00027 #include <vector> 00028 #include <string> 00029 00030 class ScalarFunctionBase; 00031 class FieldOfScalarFunction; 00032 class Mesh; 00033 00041 class WriterBase 00042 { 00043 public: 00044 typedef std::vector<ConstReferenceCounting<FieldOfScalarFunction> > FieldList; 00045 typedef std::vector<ConstReferenceCounting<ScalarFunctionBase> > ScalarFunctionList; 00046 00047 protected: 00048 ConstReferenceCounting<Mesh> 00049 __mesh; 00050 const std::string __filename; 00052 const FileDescriptor& 00053 __fileDescriptor; 00054 const std::string __CR; 00056 FieldList __fieldList; 00058 ScalarFunctionList __scalarFunctionList; 00061 private: 00066 WriterBase(const WriterBase&); 00067 00068 public: 00074 void add(ConstReferenceCounting<ScalarFunctionBase> function); 00075 00081 void add(ConstReferenceCounting<FieldOfScalarFunction> field); 00082 00087 virtual void proceed() const=0; 00088 00096 WriterBase(ConstReferenceCounting<Mesh> mesh, 00097 const std::string& filename, 00098 const FileDescriptor& fileDescriptor); 00099 00104 virtual ~WriterBase(); 00105 }; 00106 00107 #endif // WRITER_BASE_HPP
1.5.6