// GenericRepositoryOperator.h #ifndef GenericRepositoryOperator_H #define GenericRepositoryOperator_H // Vinay Sambamurthy // Aug 2004 // // Provides an interface for operations on two repositories such as merging and // finding the list of inconsistent duplicates between the two repositories. #include "dataset_catalog/GenericRepository.h" namespace dset { class GenericRepositoryOperator { public: // typedefs // List of objects in repository typedef std::vector ObjList; private: // data const GenericRepository &m_src; GenericRepository &m_dst; public: // member functions // Constructor. GenericRepositoryOperator(const GenericRepository &rep1, GenericRepository &rep2); // Destructor. ~GenericRepositoryOperator(); // Type check. bool is_valid() const; // Copy the source repository to the destination repository. // Returns 0 on success. int merge(); // Return the list of IDs of inconsistent duplicates. GenericRepository::IdList inconsistent_duplicate_ids(); // Return the inconsistent duplicates. ObjList inconsistent_duplicates(); // Return the 2 repositories. void result(GenericRepository &rep1, GenericRepository &rep2); }; } // end namespace dset #endif