file coutprinter/coutprinter.cpp
[No description available] More…
Namespaces
Name |
---|
Gambit TODO: see if we can use this one: |
Gambit::Printers Forward declaration. |
Detailed Description
Author: Ben Farmer (b.farmer@imperial.ac.uk)
Date: 2018 Apr
“cout” printer class member function definitions
Authors (add name and date if you modify):
Source code
// GAMBIT: Global and Modular BSM Inference Tool
// *********************************************
/// \file
///
/// "cout" printer class member function definitions
///
/// *********************************************
///
/// Authors (add name and date if you modify):
///
/// \author Ben Farmer
/// (b.farmer@imperial.ac.uk)
/// \date 2018 Apr
///
/// *********************************************
// Standard libraries
#include <map>
#include <vector>
#include <algorithm>
#include <ios>
#include <sstream>
#include <fstream>
#include <iomanip>
// Gambit
#include "gambit/Printers/printers/coutprinter.hpp"
#include "gambit/Utils/standalone_error_handlers.hpp"
#include "gambit/Utils/stream_overloads.hpp"
#include "gambit/Utils/util_functions.hpp"
// Code!
namespace Gambit
{
namespace Printers
{
// Constructor
coutPrinter::coutPrinter(const Options& options, BasePrinter* const primary)
: BasePrinter(primary,options.getValueOrDef<bool>(false,"auxilliary"))
{
set_resume(false);
// No other setup required for this printer.
}
/// Initialisation function
// Run by dependency resolver, which supplies the functors with a vector of VertexIDs whose requiresPrinting flags are set to true.
void coutPrinter::initialise(const std::vector<int>& /*printmevec*/)
{
}
/// Do final buffer dumps
void coutPrinter::finalise(bool /*abnormal*/)
{
}
/// Reset printer and output to clean state
void coutPrinter::reset(bool)
{
// Nothing actually stored by this printer so no need for this to do anything
}
/// Perform any point-specific logic
void coutPrinter::check_point(unsigned int mpirank, unsigned long pointID)
{
// Actually I think it is just good enough to pre-pend the
// line with the point information
std::cout << mpirank << ", " << pointID << ": "; // No endline
}
/// Permanently unavailable for this printer
Options coutPrinter::resume_reader_options()
{
std::ostringstream err;
err << "The cout printer is intrinsically incapable of reading from previous output, since the previous output just goes to cout. So you cannot use the 'resume_reader_options' function with this printer. This means that the coutPrinter cannot be used with e.g. the postprocessor v2 whilst also resuming. Sorry! (Note, postprocessor v1 should be able to resume with the coutPrinter)" << std::endl;
printer_error().raise(LOCAL_INFO, err.str());
return Options();
}
} // end namespace printers
} // end namespace Gambit
Updated on 2024-07-18 at 13:53:33 +0000