// DatasetMergeResult.cxx #include "dataset_split/DatasetMergeResult.h" #include #include #include "dataset_base/Dataset.h" using std::string; using std::ostream; using std::endl; using std::map; using dset::Dataset; using dset::DatasetList; using dset::DatasetMergeResult; //********************************************************************** // Member functions. //********************************************************************** // Constructor for invalid state. DatasetMergeResult::DatasetMergeResult(int err) : m_valid(false), m_err(err), m_pdst(0) { } //********************************************************************** // Constructor for valid state. DatasetMergeResult:: DatasetMergeResult(const DatasetList& input_dsts, const DatasetList& merged_datasets, const DatasetList& rejected_datasets, const Dataset* pdst) : m_valid(true), m_err(0), m_input_dsts(input_dsts), m_merged_dsts(merged_datasets), m_rejected_dsts(rejected_datasets), m_pdst(pdst) { } //********************************************************************** // Free functions. //********************************************************************** // Output stream. ostream& operator<<(ostream& lhs, const DatasetMergeResult& rhs) { if ( ! rhs.is_valid() ) { lhs << "Invalid Dataset merge result: error " << rhs.error(); } else { lhs << "Dataset merge result:" << endl; lhs << " # input: " << rhs.input_datasets().size() << endl; lhs << " # merged: " << rhs.merged_datasets().size() << endl; lhs << " # rejected: " << rhs.rejected_datasets().size() << endl; if ( rhs.dataset() == 0 ) { lhs << "There is no merged dataset"; } else { lhs << *rhs.dataset(); } } return lhs; } //********************************************************************** // Equality. bool operator==(const dset::DatasetMergeResult& lhs, const dset::DatasetMergeResult& rhs) { return lhs.input_datasets() == rhs.input_datasets() && lhs.merged_datasets() == rhs.merged_datasets() && lhs.rejected_datasets() == rhs.rejected_datasets() && lhs.dataset() == rhs.dataset(); } //********************************************************************** // Inequality. bool operator!=(const dset::DatasetMergeResult& lhs, const dset::DatasetMergeResult& rhs) { return ! (lhs == rhs); } //**********************************************************************