HOPS
HOPS class reference
MHO_AFileInfoExtractor.hh
Go to the documentation of this file.
1 #ifndef MHO_AFileInfoExtractor_HH__
2 #define MHO_AFileInfoExtractor_HH__
3 
4 #include <cmath>
5 #include <complex>
6 #include <iomanip>
7 #include <sstream>
8 #include <string>
9 
10 #include "MHO_Clock.hh"
11 #include "MHO_Message.hh"
12 
13 #include "MHO_JSONHeaderWrapper.hh"
14 #include "MHO_ParameterStore.hh"
15 
16 namespace hops
17 {
18 
29 {
36 };
37 
42 {
43 
44  public:
47 
48  public:
56  bool SummarizeFringeFile(std::string filename, mho_json& fsum);
57 
58  //version 5 or 6 only
66  std::string ConvertToAlistRow(const mho_json& data, int version);
67 
76  std::string GetAlistHeader(int version, int type, char comment_char, std::string app_name = "alist4");
77 
78  protected:
88  void RetrieveParameter(mho_json& obj, const std::string& name, const MHO_ParameterStore& paramStore,
89  const std::string& path, const std::string& type);
90 
100  std::string RetrieveParameterAsString(const mho_json& obj, const std::string& name, const std::string& type,
101  const std::string& pformat);
102 
109  par_type DetermineParameterType(std::string etype);
110 
118  template< typename XValueType > std::string ConvertToString(XValueType value, const std::string& pformat)
119  {
120  std::string output;
121  std::stringstream ss;
122  char tmp[80] = {0};
123  if(pformat != "")
124  {
125  snprintf(tmp, sizeof(tmp), pformat.c_str(), value);
126  ss << tmp;
127  output = ss.str();
128  }
129  else
130  {
131  ss << std::setprecision(15); //default to full double precision
132  ss << value;
133  output = ss.str();
134  }
135  return output;
136  }
137 };
138 
139 } // namespace hops
140 
141 #endif
nlohmann::json mho_json
Definition: MHO_JSONHeaderWrapper.hh:5
Class MHO_AFileInfoExtractor.
Definition: MHO_AFileInfoExtractor.hh:42
par_type DetermineParameterType(std::string etype)
Determines parameter type based on input string.
Definition: MHO_AFileInfoExtractor.cc:600
std::string ConvertToAlistRow(const mho_json &data, int version)
Converts mho_json data to alist row string for versions 5 or 6.
Definition: MHO_AFileInfoExtractor.cc:368
std::string GetAlistHeader(int version, int type, char comment_char, std::string app_name="alist4")
Getter for alist header (row text)
Definition: MHO_AFileInfoExtractor.cc:194
std::string ConvertToString(XValueType value, const std::string &pformat)
Converts a value to string using specified format or default precision.
Definition: MHO_AFileInfoExtractor.hh:118
MHO_AFileInfoExtractor()
Definition: MHO_AFileInfoExtractor.hh:45
void RetrieveParameter(mho_json &obj, const std::string &name, const MHO_ParameterStore &paramStore, const std::string &path, const std::string &type)
Retrieves a parameter from the store and populates it into a json object.
Definition: MHO_AFileInfoExtractor.cc:540
bool SummarizeFringeFile(std::string filename, mho_json &fsum)
Summarizes a fringe file and populates the json object fsum with its data.
Definition: MHO_AFileInfoExtractor.cc:199
std::string RetrieveParameterAsString(const mho_json &obj, const std::string &name, const std::string &type, const std::string &pformat)
Retrieve and convert a parameter from a json object to string based on its type.
Definition: MHO_AFileInfoExtractor.cc:625
virtual ~MHO_AFileInfoExtractor()
Definition: MHO_AFileInfoExtractor.hh:46
Class MHO_ParameterStore.
Definition: MHO_ParameterStore.hh:52
const char version[]
Definition: difx2mark4.c:37
Definition: fit_gsl.h:54
Definition: MHO_AdhocFlagging.hh:18
par_type
Definition: MHO_AFileInfoExtractor.hh:29
@ int_type
Definition: MHO_AFileInfoExtractor.hh:30
@ int64_type
Definition: MHO_AFileInfoExtractor.hh:31
@ bool_type
Definition: MHO_AFileInfoExtractor.hh:34
@ unknown_type
Definition: MHO_AFileInfoExtractor.hh:35
@ string_type
Definition: MHO_AFileInfoExtractor.hh:33
@ double_type
Definition: MHO_AFileInfoExtractor.hh:32
int output(struct vex *root, struct type_pass *pass)
Definition: output.c:255
Definition: vex.h:175