COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
History Class Reference

Stores History of variables. More...

#include <History.hpp>

Inherits Component.

Public Member Functions

 History (const std::string &name)
 Contructor. More...
 
virtual ~History ()
 Virtual destructor. More...
 
void write_file (boost::filesystem::fstream &file)
 Write the history to file. More...
 
void read_file (boost::filesystem::fstream &file)
 Read the history from file. More...
 
Handle< common::Table< Real > const > table ()
 Read access to the table storing the history. More...
 
Handle< math::VariablesDescriptor const > variables () const
 Information of every variable stored in history. More...
 
void flush ()
 Flush the buffer in the table. More...
 
HistoryEntry entry () const
 make a Entry object that can be written to any output stream More...
 
High level API
void set (const std::string &var_name, const Real &var_values)
 Set in the current entry the variable with given name to a given value. More...
 
void set (const std::string &var_name, const std::vector< Real > &var_values)
 Set in the current entry the vector of variables with given name to a given value. More...
 
void save_entry ()
 Finalize an entry in history, save it, and write it optionally (default=ON) to file. More...
 
SIGNALS
void signal_write (common::SignalArgs &args)
 Write the history to file, signal. More...
 
void signature_write (common::SignalArgs &args)
 Write the history to file, signature. More...
 
void signal_read (common::SignalArgs &args)
 Read the history from file, signal. More...
 
void signature_read (common::SignalArgs &args)
 Read the history from file, signature. More...
 
- Public Member Functions inherited from Component
 Component (const std::string &name)
 
virtual ~Component ()
 Virtual destructor. More...
 
const std::string & name () const
 Access the name of the component. More...
 
void rename (const std::string &name)
 Rename the component. More...
 
URI uri () const
 Construct the full path. More...
 
void complete_path (URI &path) const
 
Handle< Componentaccess_component (const URI &path) const
 
Handle< Componentaccess_component_checked (const URI &path)
 
Handle< Component const > access_component_checked (const URI &path) const
 
Handle< Componenthandle ()
 Get a handle to the component. More...
 
Handle< Component const > handle () const
 
template<typename ComponentT >
Handle< ComponentT > handle ()
 
template<typename ComponentT >
Handle< ComponentT const > handle () const
 
Handle< Componentparent () const
 
Handle< Component const > root () const
 
Handle< Componentroot ()
 
Handle< Componentget_child (const std::string &name)
 
Handle< Component const > get_child (const std::string &name) const
 
Handle< Componentget_child_checked (const std::string &name)
 
Handle< Component const > get_child_checked (const std::string &name) const
 
Handle< Componentcreate_component (const std::string &name, const std::string &builder)
 Build a (sub)component of this component using the extended type_name of the component. More...
 
template<typename T >
Handle< T > create_component (const std::string &name)
 Create a (sub)component of this component automatically cast to the specified type. More...
 
template<typename T >
Handle< T > create_static_component (const std::string &name)
 Create a static "always there" subcomponent. More...
 
Componentadd_component (const boost::shared_ptr< Component > &subcomp)
 Add the passed component as a subcomponent. More...
 
void add_link (Component &linked_component)
 
boost::shared_ptr< Componentremove_component (const std::string &name)
 Remove a (sub)component of this component. More...
 
boost::shared_ptr< Componentremove_component (Component &subcomp)
 Remove a (sub)component of this component. More...
 
void clear ()
 Remove all sub-components of this component, except for the static ones. More...
 
void move_to (Component &to_parent)
 
std::string tree (bool basic_mode=false, Uint depth=0, Uint recursion_level=0) const
 
std::string info (const std::string &what=std::string("cospt")) const
 
size_t count_children () const
 
virtual std::string derived_type_name () const =0
 
PropertyListproperties ()
 
const PropertyListproperties () const
 
OptionListoptions ()
 
const OptionListoptions () const
 
void reset_options ()
 Reset all options to their default value. More...
 
void configure_option_recursively (const std::string &optname, const boost::any &val)
 
Componentmark_basic ()
 marks this component as basic. More...
 
template<typename ComponentT >
void put_components (std::vector< boost::shared_ptr< ComponentT > > &vec, const bool recurse)
 
template<typename ComponentT >
void put_components (std::vector< boost::shared_ptr< ComponentT const > > &vec, const bool recurse) const
 
template<>
void put_components (std::vector< boost::shared_ptr< Component > > &vec, const bool recurse)
 
template<>
void put_components (std::vector< boost::shared_ptr< Component const > > &vec, const bool recurse) const
 
Component::iterator begin ()
 The begin iterator for a range containing Components. More...
 
Component::iterator end ()
 The end iterator for a range containing Components. More...
 
Component::const_iterator begin () const
 The begin iterator for a range containing Components (const version) More...
 
Component::const_iterator end () const
 The end iterator for a range containing Components (const version) More...
 
Component::iterator recursive_begin ()
 The begin iterator for a recursive range containing Components. More...
 
Component::iterator recursive_end ()
 The end iterator for a recursive range containing Components. More...
 
Component::const_iterator recursive_begin () const
 The begin iterator for a recursive range containing Components (const version) More...
 
Component::const_iterator recursive_end () const
 The end iterator for a recursive range containing Components (const version) More...
 
template<typename T >
Handle< T > create_component (const std::string &name, const std::string &builder)
 Create a component using the reduced builder name. More...
 
void signal_configure (SignalArgs &args)
 configures all the options on this class More...
 
void signal_create_component (SignalArgs &args)
 creates a component from this component More...
 
void signal_delete_component (SignalArgs &args)
 delete this component More...
 
void signal_move_component (SignalArgs &args)
 moves a component from this component to another More...
 
void signal_list_tree (SignalArgs &args) const
 lists the sub components and puts them on the xml_tree More...
 
void signal_list_tree_recursive (SignalArgs &args) const
 prints tree recursively More...
 
void signal_list_properties (SignalArgs &args) const
 lists the properties of this component More...
 
void signal_list_options (SignalArgs &args) const
 lists the properties of this component More...
 
void signal_list_options_recursive (SignalArgs &args) const
 prints all options recursive More...
 
void signal_list_signals (SignalArgs &args) const
 lists the signals of this component More...
 
void signal_list_signals_recursive (SignalArgs &args) const
 prints all signals recursive More...
 
void signal_print_info (SignalArgs &args) const
 gets info on this component More...
 
void signal_print_tree (SignalArgs &args) const
 signal to print the tree More...
 
void signature_print_tree (SignalArgs &args) const
 signature to signal_print_tree More...
 
void signal_rename_component (SignalArgs &args)
 renames this component More...
 
void signal_save_tree (SignalArgs &args)
 dumps the tree to a file More...
 
void signal_list_content (SignalArgs &args)
 gives information about this component such as options, signals, ... More...
 
void signal_signature (SignalArgs &args)
 Gives a signal signature, if any. More...
 
void signature_create_component (SignalArgs &args)
 
void signature_rename_component (SignalArgs &args)
 
void signature_move_component (SignalArgs &args)
 
void signal_store_timings (SignalArgs &args)
 Signal to store the timings (if enabled) into properties, i.e. for readout from python or the GUI. More...
 
void signal_clear (SignalArgs &args)
 Signal to remove all sub-components. More...
 
void signal_reset_options (SignalArgs &args)
 Signal to set all options to their default value. More...
 
void signal_add_tag (SignalArgs &args)
 Signal to add a tag. More...
 
void signature_add_tag (SignalArgs &args)
 
- Public Member Functions inherited from SignalHandler
 ~SignalHandler ()
 
const storage_tsignal_list () const
 
SignalPtr signal (const SignalID &sname)
 
SignalCPtr signal (const SignalID &sname) const
 
SignalRet call_signal (const SignalID &sname, SignalArgs &sinput)
 Calls the signal by providing its name and input. More...
 
SignalRet call_signal (const SignalID &sname, std::vector< std::string > &sinput)
 Calls the signal by providing its name and input. More...
 
bool signal_exists (const SignalID &sname) const
 Checks if a signal exists or not. More...
 
Signalregist_signal (const SignalID &sname)
 Regist signal. More...
 
void unregist_signal (const SignalID &sname)
 Unregist signal. More...
 
- Public Member Functions inherited from ConnectionManager
 ~ConnectionManager ()
 destructor closes all connections More...
 
Connectionconnection (const std::string &name)
 
Connectionmanage_connection (const std::string &name)
 manages a connection (creates if necessary) More...
 
- Public Member Functions inherited from TaggedObject
 TaggedObject ()
 Constructor. More...
 
bool has_tag (const std::string &tag) const
 
void add_tag (const std::string &tag)
 
std::vector< std::string > get_tags () const
 
void remove_tag (const std::string &tag)
 

Static Public Member Functions

static std::string type_name ()
 Get the class name. More...
 
- Static Public Member Functions inherited from Component
static std::string type_name ()
 Get the class name. More...
 

Private Member Functions

bool resize_if_necessary ()
 resize table and rebuild buffer if needed More...
 
std::string file_header () const
 return the log-file header in string format More...
 

Static Private Member Functions

static void open_read_access_file (boost::filesystem::fstream &file, const common::URI &file_uri)
 open a file with given URI More...
 
static void open_write_access_file (boost::filesystem::fstream &file, const common::URI &file_uri)
 

Private Attributes

bool m_logging
 Flag to check if the history has to be logged. More...
 
boost::filesystem::fstream m_file
 Log file handle. More...
 
Handle< common::Table< Real > > m_table
 Handle to the table. More...
 
boost::shared_ptr< common::Table< Real >::Bufferm_buffer
 The buffer to manipulate m_table. More...
 
Handle< math::VariablesDescriptorm_variables
 Description of the variables. More...
 
bool m_table_needs_resize
 

Additional Inherited Members

- Public Types inherited from Component
typedef ComponentIterator< Componentiterator
 type of the iterator to Component More...
 
typedef ComponentIterator< Component const > const_iterator
 type of the iterator to constant Component More...
 
- Public Types inherited from SignalHandler
typedef std::vector< SignalPtrstorage_t
 storage type for signals More...
 
- Public Attributes inherited from SignalHandler
storage_t m_signals
 storage of the signals More...
 
- Protected Member Functions inherited from Component
Componentadd_static_component (const boost::shared_ptr< Component > &subcomp)
 Add a static (sub)component of this component. More...
 
void raise_tree_updated_event ()
 raise event that the path has changed More...
 

Detailed Description

Stores History of variables.

An API is offered to easily store the history of Real variables, or vectors of Real variables, and log to file.

History is stored internally using a common::Table<Real> . An optional (default=ON) logging facility is provided to log the history to file at every new entry. The file format is Tab Separated Values (extension tsv)

Any number of variables can be added after logging started. This will cause The history file to be rewritten, including the new variables, putting zero's for the non-existent past entries.

Example:

boost::shared_ptr<History> history = allocate_component<History>("history");
history->set("iter",1); // Create new variable "iter", and store it as a property
history->save_entry(); // Because new variable: Resize table , create buffer. Then store property "iter" in buffer, write to file
history->set("iter",2); // No new variable created, but property "iter" changed
history->save_entry(); // Store property "iter" in buffer, write to file
history->set("iter",3); // No new variable created, but property "iter" changed
history->set("time",0.1); // Create new variable "time", and store it as a property
history->save_entry(); // Because new variable: Resize table , create buffer. Then store properties "iter" and "time" in buffer, write to file
Author
Willem Deconinck

Definition at line 57 of file History.hpp.

Constructor & Destructor Documentation

History ( const std::string &  name)

Contructor.

Parameters
nameof the component

Definition at line 28 of file History.cpp.

~History ( )
virtual

Virtual destructor.

Definition at line 64 of file History.cpp.

Member Function Documentation

HistoryEntry entry ( ) const

make a Entry object that can be written to any output stream

Definition at line 329 of file History.cpp.

std::string file_header ( ) const
private

return the log-file header in string format

Definition at line 257 of file History.cpp.

void flush ( )

Flush the buffer in the table.

Definition at line 159 of file History.cpp.

void open_read_access_file ( boost::filesystem::fstream &  file,
const common::URI file_uri 
)
staticprivate

open a file with given URI

Definition at line 230 of file History.cpp.

void open_write_access_file ( boost::filesystem::fstream &  file,
const common::URI file_uri 
)
staticprivate

Definition at line 243 of file History.cpp.

void read_file ( boost::filesystem::fstream &  file)

Read the history from file.

Definition at line 304 of file History.cpp.

bool resize_if_necessary ( )
private

resize table and rebuild buffer if needed

Definition at line 104 of file History.cpp.

void save_entry ( )

Finalize an entry in history, save it, and write it optionally (default=ON) to file.

  • The entry is assembled from the properties that are set using the function set().
  • In case new variables were created, resize the table, and create new buffer.
  • The entry is then saved in the buffer
  • The entry is optionally (default=ON) saved to file. In case of new variables, the file gets recreated.

Definition at line 126 of file History.cpp.

void set ( const std::string &  var_name,
const Real &  var_values 
)

Set in the current entry the variable with given name to a given value.

Variables are saved as properties in this component This function can be called multiple times per entry.

Definition at line 74 of file History.cpp.

void set ( const std::string &  var_name,
const std::vector< Real > &  var_values 
)

Set in the current entry the vector of variables with given name to a given value.

Variables are saved as properties in this component This function can be called multiple times per entry.

Definition at line 94 of file History.cpp.

void signal_read ( common::SignalArgs args)

Read the history from file, signal.

Definition at line 216 of file History.cpp.

void signal_write ( common::SignalArgs args)

Write the history to file, signal.

Definition at line 191 of file History.cpp.

void signature_read ( common::SignalArgs args)

Read the history from file, signature.

Definition at line 207 of file History.cpp.

void signature_write ( common::SignalArgs args)

Write the history to file, signature.

Definition at line 182 of file History.cpp.

Handle< Table< Real > const > table ( )

Read access to the table storing the history.

Note
This flushes the buffer first, so that most recent information is available

Definition at line 167 of file History.cpp.

static std::string type_name ( )
inlinestatic

Get the class name.

Definition at line 69 of file History.hpp.

Handle< math::VariablesDescriptor const > variables ( ) const

Information of every variable stored in history.

Definition at line 175 of file History.cpp.

void write_file ( boost::filesystem::fstream &  file)

Write the history to file.

Definition at line 282 of file History.cpp.

Member Data Documentation

boost::shared_ptr< common::Table<Real>::Buffer > m_buffer
private

The buffer to manipulate m_table.

Definition at line 155 of file History.hpp.

boost::filesystem::fstream m_file
private

Log file handle.

Definition at line 149 of file History.hpp.

bool m_logging
private

Flag to check if the history has to be logged.

Definition at line 146 of file History.hpp.

Handle< common::Table<Real> > m_table
private

Handle to the table.

Definition at line 152 of file History.hpp.

bool m_table_needs_resize
private

Flag to check if variables have been added. If so, the table needs to be resized.

Definition at line 162 of file History.hpp.

Handle< math::VariablesDescriptor > m_variables
private

Description of the variables.

Definition at line 158 of file History.hpp.


The documentation for this class was generated from the following files:
Send comments to:
COOLFluiD Web Admin