ReFRACtor
FullPhysics::OutputTemplate< T > Class Template Reference

Most of the time the write_data needed by Output is best done through a template. More...

#include <output.h>

+ Inheritance diagram for FullPhysics::OutputTemplate< T >:
+ Collaboration diagram for FullPhysics::OutputTemplate< T >:

Public Member Functions

virtual ~OutputTemplate ()
 
virtual void print (std::ostream &Os) const
 
std::string print_to_string () const
 Print to string. More...
 
template<class S , class T , int D>
void register_data_source (const std::string &Dataset_name, blitz::Array< T, D >(S::*Pmf)() const, const boost::shared_ptr< S > &Src)
 A common way to supply the metadata source is with a shared_ptr to an object, and a pointer to a member function. More...
 
template<class S , class T >
void register_data_source (const std::string &Dataset_name, T(S::*Pmf)() const, const boost::shared_ptr< S > &Src)
 A common way to supply the metadata source is with a shared_ptr to an object, and a pointer to a member function. More...
 
template<class T , int D>
void register_data_source (const std::string &Dataset_name, const blitz::Array< T, D > &Val)
 Handling for when data is constant. More...
 
template<class T >
void register_data_source (const std::string &Dataset_name, const T &Val)
 Handling for when data is constant. More...
 
template<class T >
void register_data_source (const std::string &Dataset_name, boost::function< T > f)
 Most general way to enter a Data source. More...
 
template<class S , class T >
void register_data_source_pad (const std::string &Dataset_name, blitz::Array< T, 1 >(S::*Pmf)() const, const boost::shared_ptr< S > &Src, int Full_size, T Fill_value)
 There are several fields that are generated on the active levels only. More...
 
template<class S , class T >
void register_data_source_pad (const std::string &Dataset_name, blitz::Array< T, 2 >(S::*Pmf)() const, const boost::shared_ptr< S > &Src, int Full_size, T Fill_value)
 
void write ()
 Write out file. More...
 
void write_best_attempt ()
 Write out the file, making a best attempt but ignoring all errors. More...
 

Protected Member Functions

virtual void end_because_of_error ()
 Notify when an error occurred. More...
 
virtual void end_write ()
 Notify when we are done. More...
 
virtual void start_write ()
 Notify derived class that we are starting to write data. More...
 
virtual void write_data (const std::string &Dataset_name, int Val)
 Various write functions that derived classes. More...
 
virtual void write_data (const std::string &Dataset_name, int64_t Val)
 
virtual void write_data (const std::string &Dataset_name, double Val)
 
virtual void write_data (const std::string &Dataset_name, const std::string &Val)
 
virtual void write_data (const std::string &Dataset_name, const char *Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< int, 1 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< std::string, 1 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< const char *, 1 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< double, 1 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< int, 2 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< std::string, 2 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< const char *, 2 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< double, 2 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< int, 3 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< std::string, 3 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< const char *, 3 > &Val)
 
virtual void write_data (const std::string &Dataset_name, const blitz::Array< double, 3 > &Val)
 

Detailed Description

template<class T>
class FullPhysics::OutputTemplate< T >

Most of the time the write_data needed by Output is best done through a template.

However you can't actually have virtual templates. This base class implements each of the write_data member functions by a call to a function "write_data_t" that should be derived in a class T.

Definition at line 276 of file output.h.

Constructor & Destructor Documentation

◆ ~OutputTemplate()

template<class T>
virtual FullPhysics::OutputTemplate< T >::~OutputTemplate ( )
inlinevirtual

Definition at line 279 of file output.h.

Member Function Documentation

◆ end_because_of_error()

virtual void FullPhysics::Output::end_because_of_error ( )
inlineprotectedvirtualinherited

Notify when an error occurred.

Derived classes should clean up any partially generated output.

Reimplemented in FullPhysics::OutputHdf, and FullPhysics::OutputHdfIteration.

Definition at line 226 of file output.h.

◆ end_write()

virtual void FullPhysics::Output::end_write ( )
inlineprotectedvirtualinherited

Notify when we are done.

Default is to do nothing, but derived classes can override this.

Definition at line 219 of file output.h.

◆ print()

virtual void FullPhysics::Output::print ( std::ostream &  Os) const
inlinevirtualinherited

Reimplemented in FullPhysics::OutputHdf, and FullPhysics::OutputHdfIteration.

Definition at line 105 of file output.h.

◆ print_to_string()

std::string FullPhysics::Printable< Output >::print_to_string ( ) const
inlineinherited

Print to string.

This is primarily useful for SWIG wrappers to this class, e.g. a to_s method in ruby.

Definition at line 31 of file printable.h.

◆ register_data_source() [1/5]

template<class S , class T , int D>
void FullPhysics::Output::register_data_source ( const std::string &  Dataset_name,
blitz::Array< T, D >(S::*)() const  Pmf,
const boost::shared_ptr< S > &  Src 
)
inlineinherited

A common way to supply the metadata source is with a shared_ptr to an object, and a pointer to a member function.

This supplies a simplified interface to this.

Definition at line 114 of file output.h.

◆ register_data_source() [2/5]

template<class S , class T >
void FullPhysics::Output::register_data_source ( const std::string &  Dataset_name,
T(S::*)() const  Pmf,
const boost::shared_ptr< S > &  Src 
)
inlineinherited

A common way to supply the metadata source is with a shared_ptr to an object, and a pointer to a member function.

This supplies a simplified interface to this.

Definition at line 162 of file output.h.

◆ register_data_source() [3/5]

template<class T , int D>
void FullPhysics::Output::register_data_source ( const std::string &  Dataset_name,
const blitz::Array< T, D > &  Val 
)
inlineinherited

Handling for when data is constant.

Definition at line 175 of file output.h.

◆ register_data_source() [4/5]

template<class T >
void FullPhysics::Output::register_data_source ( const std::string &  Dataset_name,
const T &  Val 
)
inlineinherited

Handling for when data is constant.

Definition at line 188 of file output.h.

◆ register_data_source() [5/5]

template<class T >
void FullPhysics::Output::register_data_source ( const std::string &  Dataset_name,
boost::function< T >  f 
)
inlineinherited

Most general way to enter a Data source.

Definition at line 200 of file output.h.

◆ register_data_source_pad() [1/2]

template<class S , class T >
void FullPhysics::Output::register_data_source_pad ( const std::string &  Dataset_name,
blitz::Array< T, 1 >(S::*)() const  Pmf,
const boost::shared_ptr< S > &  Src,
int  Full_size,
Fill_value 
)
inlineinherited

There are several fields that are generated on the active levels only.

For output, we want to pad this to the full number of levels. This utility routine will pad the given size using the given fill value.

Definition at line 130 of file output.h.

◆ register_data_source_pad() [2/2]

template<class S , class T >
void FullPhysics::Output::register_data_source_pad ( const std::string &  Dataset_name,
blitz::Array< T, 2 >(S::*)() const  Pmf,
const boost::shared_ptr< S > &  Src,
int  Full_size,
Fill_value 
)
inlineinherited

Definition at line 143 of file output.h.

◆ start_write()

virtual void FullPhysics::Output::start_write ( )
inlineprotectedvirtualinherited

Notify derived class that we are starting to write data.

Default is to do nothing, but derived classes can override this.

Reimplemented in FullPhysics::OutputHdf.

Definition at line 212 of file output.h.

◆ write()

void Output::write ( )
inherited

Write out file.

A write is intended to be atomic - either it completely succeeds or the output should be cleaned up and nothing produced. This prevents a file with "missing fields" from being generated.

Definition at line 62 of file output.cc.

◆ write_best_attempt()

void Output::write_best_attempt ( )
inherited

Write out the file, making a best attempt but ignoring all errors.

This may result in a file that is missing fields that had an error when writing or collecting the data. This is intended for use by an error dump, when we want to get whatever we can.

Definition at line 86 of file output.cc.

◆ write_data() [1/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
int  Val 
)
inlineprotectedvirtual

Various write functions that derived classes.

Implements FullPhysics::Output.

Definition at line 281 of file output.h.

◆ write_data() [2/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
int64_t  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 283 of file output.h.

◆ write_data() [3/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
double  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 285 of file output.h.

◆ write_data() [4/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const std::string &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 287 of file output.h.

◆ write_data() [5/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const char *  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 290 of file output.h.

◆ write_data() [6/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< int, 1 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 293 of file output.h.

◆ write_data() [7/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< std::string, 1 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 296 of file output.h.

◆ write_data() [8/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< const char *, 1 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 299 of file output.h.

◆ write_data() [9/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< double, 1 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 302 of file output.h.

◆ write_data() [10/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< int, 2 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 305 of file output.h.

◆ write_data() [11/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< std::string, 2 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 308 of file output.h.

◆ write_data() [12/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< const char *, 2 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 311 of file output.h.

◆ write_data() [13/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< double, 2 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 314 of file output.h.

◆ write_data() [14/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< int, 3 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 317 of file output.h.

◆ write_data() [15/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< std::string, 3 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 320 of file output.h.

◆ write_data() [16/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< const char *, 3 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 323 of file output.h.

◆ write_data() [17/17]

template<class T>
virtual void FullPhysics::OutputTemplate< T >::write_data ( const std::string &  Dataset_name,
const blitz::Array< double, 3 > &  Val 
)
inlineprotectedvirtual

Implements FullPhysics::Output.

Definition at line 326 of file output.h.


The documentation for this class was generated from the following file:

Copyright © 2017, California Institute of Technology.
ALL RIGHTS RESERVED.
U.S. Government Sponsorship acknowledged.
Generated Fri Aug 24 2018 15:44:13