BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
anonymous_namespace{DataFormatUtils.cpp} Namespace Reference

Typedefs

using createAxisFun = std::function< std::unique_ptr< IAxis >(std::istringstream iss)>
 

Functions

std::istringstream getAxisStringRepresentation (std::istream &input_stream)
 
template<class Axis >
std::unique_ptr< IAxiscreateFixedBinLikeAxis (std::istringstream iss)
 
std::unique_ptr< IAxiscreateVariableBinAxis (std::istringstream iss)
 
std::unique_ptr< IAxiscreatePointwiseAxis (std::istringstream iss)
 

Variables

const std::vector< std::pair< std::string, createAxisFun > > type_map
 
const std::string GzipExtension = ".gz"
 
const std::string BzipExtension = ".bz2"
 
const std::string IntExtension = ".int"
 
const std::string TiffExtension = ".tif"
 
const std::string TiffExtension2 = ".tiff"
 

Typedef Documentation

◆ createAxisFun

using anonymous_namespace{DataFormatUtils.cpp}::createAxisFun = typedef std::function<std::unique_ptr<IAxis>(std::istringstream iss)>

Definition at line 33 of file DataFormatUtils.cpp.

Function Documentation

◆ getAxisStringRepresentation()

std::istringstream anonymous_namespace{DataFormatUtils.cpp}::getAxisStringRepresentation ( std::istream &  input_stream)

Definition at line 158 of file DataFormatUtils.cpp.

159 {
160  std::string line;
161  std::getline(input_stream, line);
162  const std::vector<std::string> to_replace = {",", "\"", "(", ")", "[", "]"};
163  StringUtils::replaceItemsFromString(line, to_replace, " ");
164  return std::istringstream(line);
165 }
void replaceItemsFromString(std::string &text, const std::vector< std::string > &items, const std::string &replacement="")
Replaces all occurences of items from string text with delimiter.
Definition: StringUtils.cpp:64

References StringUtils::replaceItemsFromString().

Referenced by DataFormatUtils::createAxis().

Here is the call graph for this function:

◆ createFixedBinLikeAxis()

template<class Axis >
std::unique_ptr<IAxis> anonymous_namespace{DataFormatUtils.cpp}::createFixedBinLikeAxis ( std::istringstream  iss)

Creates one of FixedBinAxis from string representation FixedBinAxis("axis0", 10, -1, 1) ConstKBinAxis("axis0", 10, -1, 1) CustomBinAxis("axis0", 10, -1, 1)

Definition at line 171 of file DataFormatUtils.cpp.

172 {
173  std::string name;
174  size_t nbins(0);
175  if (!(iss >> name >> nbins))
177  "createFixedBinLikeAxis() -> Error. Can't parse the string.");
178 
179  std::vector<double> boundaries;
180  DataFormatUtils::readLineOfDoubles(boundaries, iss);
181  if (boundaries.size() != 2)
183  "Error in createFixedBinLikeAxis: Can't parse the string while "
184  "reading boundaries.");
185 
186  return std::make_unique<Axis>(name, nbins, boundaries[0], boundaries[1]);
187 }
void readLineOfDoubles(std::vector< double > &buffer, std::istringstream &iss)

References DataFormatUtils::readLineOfDoubles().

Here is the call graph for this function:

◆ createVariableBinAxis()

std::unique_ptr< IAxis > anonymous_namespace DataFormatUtils anonymous_namespace{DataFormatUtils.cpp}::cpp::createVariableBinAxis ( std::istringstream  iss)

Creates VariableBinAxis from string representation VariableBinAxis("axis0", 4, [-1, -0.5, 0.5, 1, 2])

Definition at line 191 of file DataFormatUtils.cpp.

192 {
193  std::string name;
194  size_t nbins(0);
195  if (!(iss >> name >> nbins))
197  "Error in createVariableBinAxis: Can't parse the string.");
198 
199  std::vector<double> boundaries;
200  DataFormatUtils::readLineOfDoubles(boundaries, iss);
201  if (boundaries.size() != nbins + 1)
203  "Error in createVariableBinAxis: wrong number of boundaries read.");
204 
205  return std::make_unique<VariableBinAxis>(name, nbins, boundaries);
206 }

References DataFormatUtils::readLineOfDoubles().

Here is the call graph for this function:

◆ createPointwiseAxis()

std::unique_ptr< IAxis > anonymous_namespace DataFormatUtils anonymous_namespace{DataFormatUtils.cpp}::cpp::createPointwiseAxis ( std::istringstream  iss)

Creates createPointwiseAxis from string representation PointwiseAxis("axis0", [-0.5, 0.5, 1, 2])

Definition at line 210 of file DataFormatUtils.cpp.

211 {
212  std::string name;
213  if (!(iss >> name))
215  "Error in createPointwiseAxis:Can't parse the string.");
216 
217  std::vector<double> coordinates;
218  DataFormatUtils::readLineOfDoubles(coordinates, iss);
219 
220  return std::make_unique<PointwiseAxis>(name, coordinates);
221 }

References DataFormatUtils::readLineOfDoubles().

Here is the call graph for this function:

Variable Documentation

◆ type_map

const std::vector<std::pair<std::string, createAxisFun> > anonymous_namespace{DataFormatUtils.cpp}::type_map
Initial value:
= {
{"ConstKBinAxis", createFixedBinLikeAxis<ConstKBinAxis>},
{"CustomBinAxis", createFixedBinLikeAxis<CustomBinAxis>},
{"FixedBinAxis", createFixedBinLikeAxis<FixedBinAxis>},
{"PointwiseAxis", createPointwiseAxis},
{"VariableBinAxis", createVariableBinAxis}}
std::unique_ptr< IAxis > createVariableBinAxis(std::istringstream iss)
Creates VariableBinAxis from string representation VariableBinAxis("axis0", 4, [-1,...
std::unique_ptr< IAxis > createPointwiseAxis(std::istringstream iss)
Creates createPointwiseAxis from string representation PointwiseAxis("axis0", [-0....

Definition at line 34 of file DataFormatUtils.cpp.

Referenced by DataFormatUtils::createAxis().

◆ GzipExtension

const std::string anonymous_namespace{DataFormatUtils.cpp}::GzipExtension = ".gz"

◆ BzipExtension

const std::string anonymous_namespace{DataFormatUtils.cpp}::BzipExtension = ".bz2"

◆ IntExtension

const std::string anonymous_namespace{DataFormatUtils.cpp}::IntExtension = ".int"

Definition at line 43 of file DataFormatUtils.cpp.

Referenced by DataFormatUtils::isIntFile().

◆ TiffExtension

const std::string anonymous_namespace{DataFormatUtils.cpp}::TiffExtension = ".tif"

Definition at line 44 of file DataFormatUtils.cpp.

Referenced by DataFormatUtils::isTiffFile().

◆ TiffExtension2

const std::string anonymous_namespace{DataFormatUtils.cpp}::TiffExtension2 = ".tiff"

Definition at line 45 of file DataFormatUtils.cpp.

Referenced by DataFormatUtils::isTiffFile().