00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef O2SCL_FILE_FORMAT_H
00024 #define O2SCL_FILE_FORMAT_H
00025
00026 #include <iostream>
00027 #include <fstream>
00028 #include <sstream>
00029
00030 #ifndef DOXYGENP
00031 namespace o2scl {
00032 #endif
00033
00034
00035
00036
00037
00038
00039 class out_file_format {
00040 public:
00041
00042 virtual ~out_file_format() {}
00043
00044
00045
00046 virtual int bool_out(bool dat, std::string name="")=0;
00047
00048
00049
00050 virtual int char_out(char dat, std::string name="")=0;
00051
00052
00053
00054 virtual int float_out(float dat, std::string name="")=0;
00055
00056
00057
00058 virtual int double_out(double dat, std::string name="")=0;
00059
00060
00061
00062 virtual int int_out(int dat, std::string name="")=0;
00063
00064
00065
00066 virtual int long_out(unsigned long int dat, std::string name="")=0;
00067
00068
00069
00070 virtual int string_out(std::string dat, std::string name="")=0;
00071
00072
00073
00074 virtual int word_out(std::string dat, std::string name="")=0;
00075
00076
00077
00078 virtual int start_object(std::string type, std::string name="")=0;
00079
00080
00081
00082 virtual int end_object()=0;
00083
00084
00085
00086 virtual int end_line()=0;
00087
00088
00089 virtual int init_file()=0;
00090
00091
00092 virtual int clean_up()=0;
00093
00094 };
00095
00096
00097
00098
00099
00100
00101 class in_file_format {
00102 public:
00103
00104 virtual ~in_file_format() {}
00105
00106
00107
00108 virtual int bool_in(bool &dat, std::string name="")=0;
00109
00110
00111
00112 virtual int char_in(char &dat, std::string name="")=0;
00113
00114
00115
00116 virtual int double_in(double &dat, std::string name="")=0;
00117
00118
00119
00120 virtual int float_in(float &dat, std::string name="")=0;
00121
00122
00123
00124 virtual int int_in(int &dat, std::string name="")=0;
00125
00126
00127
00128 virtual int long_in(unsigned long int &dat, std::string name="")=0;
00129
00130
00131
00132 virtual int string_in(std::string &dat, std::string name="")=0;
00133
00134
00135
00136 virtual int word_in(std::string &dat, std::string name="")=0;
00137
00138
00139 virtual int start_object(std::string &type, std::string &name)=0;
00140
00141
00142
00143 virtual int skip_object()=0;
00144
00145
00146 virtual int end_object()=0;
00147
00148
00149 virtual int init_file()=0;
00150
00151
00152 virtual int clean_up()=0;
00153 };
00154
00155 }
00156
00157 #endif