MercuryDPM  Trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
File.cc File Reference
#include "File.h"
#include <string>
#include <sstream>
#include <iostream>
#include <cmath>
#include <iomanip>
#include "Logger.h"

Go to the source code of this file.

Functions

std::string to_string_padded (unsigned int value)
 Pads the number This function tries to pad the number to 4 digits, which is used when you create multiple files with padded numbers. Any numbers larger than 4 digits return unmodified. More...
 
std::ostream & operator<< (std::ostream &os, FileType fileType)
 Writes the FileType as a human-readable string into the output stream 'os'. More...
 
std::istream & operator>> (std::istream &is, FileType &fileType)
 Reads the FileType from an input stream 'is'. More...
 
std::ostream & operator<< (std::ostream &os, const File &o)
 
std::istream & operator>> (std::istream &is, File &o)
 

Function Documentation

std::ostream& operator<< ( std::ostream &  os,
FileType  fileType 
)

Writes the FileType as a human-readable string into the output stream 'os'.

Parameters
[in,out]osoutput stream to which the fileType is written
[in]fileTypethe fileType that has to be written to the output stream
Returns
the output stream "os" that is returned after adding the fileType string

Definition at line 56 of file File.cc.

References MULTIPLE_FILES, MULTIPLE_FILES_PADDED, NO_FILE, and ONE_FILE.

57 {
58  if (fileType == FileType::NO_FILE)
59  os << "NO_FILE";
60  else if (fileType == FileType::ONE_FILE)
61  os << "ONE_FILE";
62  else if (fileType == FileType::MULTIPLE_FILES)
63  os << "MULTIPLE_FILES";
64  else if (fileType == FileType::MULTIPLE_FILES_PADDED)
65  os << "MULTIPLE_FILES_PADDED";
66  else
67  {
68  std::cerr << "FileType not recognized" << std::endl;
69  exit(-1);
70  }
71  return os;
72 }
each time-step will be written into/read from separate files numbered consecutively, with numbers padded by zeros to a minimum of four digits: name_.0000, name_.0001, ..
file will not be created/read
all data will be written into/ read from a single file called name_
each time-step will be written into/read from separate files numbered consecutively: name_...
std::ostream& operator<< ( std::ostream &  os,
const File o 
)
Parameters
[in,out]os
[in]o
Returns
std::ostream& os

Definition at line 463 of file File.cc.

References File::write().

464 {
465  o.write(os);
466  return os;
467 }
void write(std::ostream &os) const
print function, which accepts an std::stringstream as input.
Definition: File.cc:443
std::istream& operator>> ( std::istream &  is,
FileType fileType 
)

Reads the FileType from an input stream 'is'.

Parameters
[in,out]isThe input stream from which the fileType is read
[in]fileTypeThe fileType that has to be read from the input stream
Returns
the input stream "is" (that is returned after the fileType string is read out)

Definition at line 79 of file File.cc.

References ERROR, logger, MULTIPLE_FILES, MULTIPLE_FILES_PADDED, NO_FILE, and ONE_FILE.

80 {
81  std::string fileTypeString;
82  is >> fileTypeString;
83  if (!fileTypeString.compare("NO_FILE"))
84  fileType = FileType::NO_FILE;
85  else if (!fileTypeString.compare("ONE_FILE"))
86  fileType = FileType::ONE_FILE;
87  else if (!fileTypeString.compare("MULTIPLE_FILES"))
88  fileType = FileType::MULTIPLE_FILES;
89  else if (!fileTypeString.compare("MULTIPLE_FILES_PADDED"))
91  else
92  {
93  logger(ERROR, "operator>>: FileType % not recognized", fileTypeString);
94  }
95  return is;
96 }
each time-step will be written into/read from separate files numbered consecutively, with numbers padded by zeros to a minimum of four digits: name_.0000, name_.0001, ..
Logger< MERCURY_LOGLEVEL > logger("MercuryKernel")
LL< Log::ERROR > ERROR
Error log level.
Definition: Logger.cc:53
file will not be created/read
all data will be written into/ read from a single file called name_
each time-step will be written into/read from separate files numbered consecutively: name_...
std::istream& operator>> ( std::istream &  is,
File o 
)
Parameters
[in,out]is
[in]o
Returns
std::istream&

Definition at line 474 of file File.cc.

References File::read().

475 {
476  o.read(is);
477  return (is);
478 }
void read(std::istream &is)
read function, which accepts an input stream std::istream.
Definition: File.cc:418
std::string to_string_padded ( unsigned int  value)

Pads the number This function tries to pad the number to 4 digits, which is used when you create multiple files with padded numbers. Any numbers larger than 4 digits return unmodified.

Parameters
valueThe value to modify
Returns
A padded string

Definition at line 44 of file File.cc.

Referenced by File::getFullName(), and DPMBase::removeOldFiles().

45 {
46  std::ostringstream out;
47  out << std::setw(4) << std::setfill('0') << value;
48  return out.str();
49 }