$extrastylesheet
Dakota
Version 6.2
|
Results manager for iterator final data. More...
Public Member Functions | |
ResultsManager () | |
default constructor: no databases active until initialize called | |
void | initialize (const std::string &base_filename) |
initialize the results manager to manage an in-core database, writing to the specified file name | |
bool | active () const |
whether any databases are active | |
void | write_databases () |
Write in-core databases to file. | |
template<typename StoredType > | |
void | insert (const StrStrSizet &iterator_id, const std::string &data_name, const StoredType &sent_data, const MetaDataType metadata=MetaDataType()) |
insert data | |
void | insert (const StrStrSizet &iterator_id, const std::string &data_name, StringMultiArrayConstView sma_labels, const MetaDataType metadata=MetaDataType()) |
template<typename StoredType > | |
void | array_allocate (const StrStrSizet &iterator_id, const std::string &data_name, size_t array_size, const MetaDataType metadata=MetaDataType()) |
allocate an entry with array of StoredType of array_size for future insertion; likely move to non-templated accessors for these | |
template<typename StoredType > | |
void | array_insert (const StrStrSizet &iterator_id, const std::string &data_name, size_t index, const StoredType &sent_data) |
insert into a previously allocated array of StoredType at index specified; metadata must be specified at allocation | |
template<typename StoredType > | |
void | array_insert (const StrStrSizet &iterator_id, const std::string &data_name, size_t index, StringMultiArrayConstView sent_data) |
specialization: insert a SMACV into a previously allocated array of StringArrayStoredType at index specified; metadata must be specified at allocation | |
Public Attributes | |
ResultsNames | results_names |
Copy of valid results names for when manager is passed around. | |
Private Member Functions | |
template<typename StoredType > | |
StoredType | core_lookup (const StrStrSizet &iterator_id, const std::string &data_name) const |
retrieve in-core entry given by id and name | |
template<typename StoredType > | |
StoredType * | core_lookup_ptr (const StrStrSizet &iterator_id, const std::string &data_name) const |
retrieve data via pointer to avoid copy; work-around for Boost any use of pointer (could use utilib::Any) | |
template<typename StoredType > | |
StoredType | core_lookup (const StrStrSizet &iterator_id, const std::string &data_name, size_t index) const |
retrieve data from in-core array of StoredType at given index | |
template<typename StoredType > | |
const StoredType * | core_lookup_ptr (const StrStrSizet &iterator_id, const std::string &data_name, size_t index) const |
retrieve data via pointer to entry in in-core array | |
template<typename StoredType > | |
void | file_lookup (StoredType &db_data, const StrStrSizet &iterator_id, const std::string &data_name) const |
retrieve requested data into provided db_data StoredType | |
Private Attributes | |
bool | coreDBActive |
whether the in-core database in active | |
std::string | coreDBFilename |
filename for the in-core database | |
bool | hdf5DBActive |
whether the file database is active | |
boost::scoped_ptr< ResultsDBAny > | coreDB |
In-core database, with option to flush to file at end. | |
boost::shared_ptr< ResultsDBHDF5 > | hdf5DB |
File-based database; using shared_ptr due to potentially incomplete type and requirements for checked_delete in debug builds. | |
Friends | |
class | ResultsEntry |
ResultsEntry is a friend of ResultsManager. |
Results manager for iterator final data.
The results manager provides the API for posting and retrieving iterator results data (and eventually run config/statistics). It can manage a set of underlying results databases, in or out of core, depending on configuration
The key for a results entry is documented in results_types.hpp, e.g., tuple<std::string, std::string, size_t, std::string>
For now, using concrete types for most insertion, since underlying databases like HDF5 might need concrete types; though template parameter for array allocation and retrieval.
All insertions overwrite any previous data.