pelib
2.0.0
|
00001 /* 00002 Copyright 2015 Nicolas Melot 00003 00004 This file is part of Pelib. 00005 00006 Pelib is free software: you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation, either version 3 of the License, or 00009 (at your option) any later version. 00010 00011 Pelib is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with Pelib. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 00021 #include <iostream> 00022 #include <cstdlib> 00023 #include <fstream> 00024 #include <string> 00025 #include <boost/regex.hpp> 00026 #include <iomanip> 00027 00028 #include <pelib/AlgebraOutput.hpp> 00029 #include <pelib/RawDataOutput.hpp> 00030 00031 #ifndef PELIB_ALGEBRARAWOUTPUT 00032 #define PELIB_ALGEBRARAWOUTPUT 00033 00034 namespace pelib 00035 { 00037 class AlgebraRawOutput: public AlgebraOutput 00038 { 00039 public: 00043 AlgebraRawOutput(std::vector<RawDataOutput*> handlers); 00048 AlgebraRawOutput(std::vector<RawDataOutput*> handlers, const std::vector<std::string> &list); 00049 00051 virtual 00052 ~AlgebraRawOutput(); 00053 00055 virtual 00056 void 00057 dump(std::ostream& o, const Algebra &record) const; 00058 00060 virtual 00061 void 00062 dump(std::ostream& o, const AlgebraData *data) const; 00063 00065 virtual 00066 void 00067 dump(std::ostream& o, const AlgebraData &data) const; 00068 00070 virtual 00071 AlgebraRawOutput& 00072 operator=(const AlgebraRawOutput &rhs); 00074 static std::vector<RawDataOutput*> floatOutputs(); 00076 static std::vector<RawDataOutput*> intFloatOutputs(); 00078 static std::vector<RawDataOutput*> stringOutputs(); 00079 protected: 00080 std::vector<RawDataOutput*> outputs; 00081 00083 void 00084 deleteOutputs(); 00085 std::vector<std::string> output_list; 00086 private: 00087 }; 00088 } 00089 00090 #endif