diff --git a/cpp/src/db/db_impl.cpp b/cpp/src/db/db_impl.cpp index 723b80cb4af77b4833ef7bed72b9cbb0e338a7f2..ace1996eb413aaef798b671ec935260ed26bed9f 100644 --- a/cpp/src/db/db_impl.cpp +++ b/cpp/src/db/db_impl.cpp @@ -136,11 +136,11 @@ Status DBImpl::merge_files(const std::string& group_id, const meta::DateT& date, Status DBImpl::background_merge_files(const std::string& group_id) { meta::DatePartionedGroupFilesSchema raw_files; - /* auto status = _pMeta->get_small_raw_files(group_id, raw_files); */ - /* if (!status.ok()) { */ - /* _bg_error = status; */ - /* return status; */ - /* } */ + auto status = _pMeta->files_to_merge(group_id, raw_files); + if (!status.ok()) { + _bg_error = status; + return status; + } if (raw_files.size() == 0) { return Status::OK(); diff --git a/cpp/src/db/db_meta.h b/cpp/src/db/db_meta.h index 22ab911fd361b10c60f9052c0be68df91440e28a..02b899ec0d3dc7d55125ddbebff07a86fd96dc16 100644 --- a/cpp/src/db/db_meta.h +++ b/cpp/src/db/db_meta.h @@ -74,6 +74,9 @@ public: virtual Status update_files(const GroupFilesSchema& files) = 0; + virtual Status files_to_merge(const std::string& group_id, + DatePartionedGroupFilesSchema& files) = 0; + static DateT GetDate(const std::time_t& t); static DateT GetDate(); diff --git a/cpp/src/db/db_meta_impl.cpp b/cpp/src/db/db_meta_impl.cpp index 1f8c4a94cee2b7ebfa01d70910e046e4b8859e55..ef7ff7d04a598757e4dcba91dfff2cc080d31899 100644 --- a/cpp/src/db/db_meta_impl.cpp +++ b/cpp/src/db/db_meta_impl.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "db_meta_impl.h" #include "id_generators.h" @@ -56,6 +57,27 @@ Status DBMetaImpl::add_group_file(const std::string& group_id, return Status::OK(); } +Status DBMetaImpl::files_to_merge(const std::string& group_id, + DatePartionedGroupFilesSchema& files) { + //PXU TODO + files.clear(); + std::stringstream ss; + ss << "/tmp/test/" << Meta::GetDate(); + boost::filesystem::path path(ss.str().c_str()); + boost::filesystem::directory_iterator end_itr; + GroupFilesSchema gfiles; + DateT date = Meta::GetDate(); + files[date] = gfiles; + for (boost::filesystem::directory_iterator itr(path); itr != end_itr; ++itr) { + std::cout << itr->path().string() << std::endl; + GroupFileSchema f; + f.location = itr->path().string(); + files[date].push_back(f); + } + + return Status::OK(); +} + Status DBMetaImpl::has_group_file(const std::string& group_id_, const std::string& file_id_, bool& has_or_not_) { diff --git a/cpp/src/db/db_meta_impl.h b/cpp/src/db/db_meta_impl.h index 06e04902ce45ca61e93e25730efa1deea5f35a48..ee2c57ea3ce1751dad11e6320fa56106bfa3be26 100644 --- a/cpp/src/db/db_meta_impl.h +++ b/cpp/src/db/db_meta_impl.h @@ -38,6 +38,9 @@ public: virtual Status update_files(const GroupFilesSchema& files) override; + virtual Status files_to_merge(const std::string& group_id, + DatePartionedGroupFilesSchema& files) override; + private: Status initialize();