00001 #pragma ident "$Id: ConfDataWriter.cpp 2548 2011-04-11 08:41:22Z yanweignss $"
00002
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #include "ConfDataWriter.hpp"
00033
00034
00035 namespace gpstk
00036 {
00037
00038
00039 void ConfDataWriter::open(const char* fn)
00040 {
00041 FFTextStream::open(fn, std::ios::out);
00042
00043 writeHeader();
00044
00045 return;
00046 }
00047
00048
00049 void ConfDataWriter::writeHeader()
00050 {
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060 }
00061
00062
00063 void ConfDataWriter::writeCommentLine(const string& comment)
00064 {
00065 formattedPutLine("# "+comment);
00066 }
00067
00068
00069
00070
00071
00072 void ConfDataWriter::writeSeparatorLine(const string& s,
00073 const int& n )
00074 {
00075 writeCommentLine(string(n,s[0]));
00076 }
00077
00078
00079 void ConfDataWriter::writeBlankLine(const int& n)
00080 {
00081 int nLine = (n < 1) ? 0 : n;
00082 for(int i = 0;i < nLine; i++)
00083 {
00084 formattedPutLine("");
00085 }
00086 }
00087
00088
00089
00090
00091
00092
00093
00094
00095 void ConfDataWriter::writeVariable(const string& var,
00096 const string& val,
00097 const string& varComment,
00098 const string& valComment)
00099 {
00100 string line=var;
00101
00102 if(var.length()<variableWidth)
00103 line = StringUtils::leftJustify(var,variableWidth);
00104
00105 if(varComment.length()>0) line += " , " + varComment;
00106
00107 line += " = " + val;
00108
00109 if(valComment.length() > 0) line += " , " + valComment;
00110
00111 formattedPutLine(line);
00112 }
00113
00114
00115
00116
00117
00118
00119
00120
00121 void ConfDataWriter::writeVariable(const string& var,
00122 const double& val,
00123 const string& varComment,
00124 const string& valComment)
00125 {
00126 writeVariable(var,StringUtils::asString(val,valuePrecison),
00127 varComment,valComment);
00128 }
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140 void ConfDataWriter::writeVariableList(const string& var,
00141 const string valList[],
00142 const int& n,
00143 const string& varComment,
00144 const string& valComment)
00145 {
00146 string line=var;
00147
00148 if(var.length()<variableWidth)
00149 line = StringUtils::leftJustify(var,variableWidth);
00150
00151 if(varComment.length() > 0) line += " , " + varComment;
00152
00153 line += " = ";
00154
00155 for(int i=0;i<n;i++) line += valList[i] + " ";
00156
00157
00158 if(valComment.length() > 0) line += " , " + valComment;
00159
00160 formattedPutLine(line);
00161 }
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171 void ConfDataWriter::writeVariableList(const string& var,
00172 vector<string> valList,
00173 const string& varComment,
00174 const string& valComment)
00175 {
00176 string line=var;
00177
00178 if(var.length()<variableWidth)
00179 line = StringUtils::leftJustify(var,variableWidth);
00180
00181 if(varComment.length() > 0) line += " , " + varComment;
00182
00183 line += " = ";
00184
00185 for(vector<string>::const_iterator it = valList.begin();
00186 it != valList.end();
00187 ++it )
00188 {
00189 line += (*it) + " ";
00190 }
00191
00192
00193 if(valComment.length() > 0) line += " , " + valComment;
00194
00195 formattedPutLine(line);
00196 }
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207 void ConfDataWriter::writeVariableList(const string& var,
00208 const int valList[],
00209 const int& n,
00210 const string& varComment,
00211 const string& valComment )
00212 {
00213 vector<string> vals;
00214 for(int i = 0; i < n; i++)
00215 {
00216 vals.push_back(StringUtils::asString(valList[i]));
00217 }
00218
00219 writeVariableList(var, vals, varComment, valComment);
00220 }
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230 void ConfDataWriter::writeVariableList(const string& var,
00231 const double valList[],
00232 const int& n,
00233 const string& varComment,
00234 const string& valComment)
00235 {
00236 vector<string> vals;
00237 for(int i = 0; i < n; i++)
00238 {
00239 vals.push_back(StringUtils::asString(valList[i],valuePrecison));
00240 }
00241
00242 writeVariableList(var, vals, varComment, valComment);
00243 }
00244
00245
00246
00247
00248
00249
00250
00251 void ConfDataWriter::writeSection(const string& name,
00252 const string& comment)
00253 {
00254 string commentCopy(comment);
00255
00256 if(commentCopy.length() < 1)
00257 {
00258 commentCopy = "Configuration data for '" + name + "' section";
00259 }
00260
00261 writeCommentLine(StringUtils::upperCase(commentCopy));
00262
00263 writeSeparatorLine();
00264
00265 formattedPutLine("[" + StringUtils::strip(name) + "]");
00266
00267 }
00268
00269
00270
00271
00272 void ConfDataWriter::writeEnd()
00273 {
00274 writeBlankLine();
00275
00276 writeCommentLine("End Of the File");
00277
00278 writeSeparatorLine();
00279 }
00280
00281
00282
00283 void ConfDataWriter::formattedPutLine(const std::string& sline)
00284 {
00285
00286 (*this) << sline.substr(0,255) << endl;
00287 }
00288
00289 }