/******************************************************************************* * Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved * Unauthorized copying of this file, via any medium is strictly prohibited. * Proprietary and confidential. ******************************************************************************/ #include "RequestHandler.h" #include "RequestTask.h" #include "utils/TimeRecorder.h" namespace zilliz { namespace milvus { namespace server { using namespace ::milvus; RequestHandler::RequestHandler() { } void RequestHandler::CreateTable(const thrift::TableSchema ¶m) { BaseTaskPtr task_ptr = CreateTableTask::Create(param); RequestScheduler::ExecTask(task_ptr); } bool RequestHandler::HasTable(const std::string &table_name) { bool has_table = false; BaseTaskPtr task_ptr = HasTableTask::Create(table_name, has_table); RequestScheduler::ExecTask(task_ptr); return has_table; } void RequestHandler::DeleteTable(const std::string &table_name) { BaseTaskPtr task_ptr = DeleteTableTask::Create(table_name); RequestScheduler::ExecTask(task_ptr); } void RequestHandler::AddVector(std::vector &_return, const std::string &table_name, const std::vector &record_array) { BaseTaskPtr task_ptr = AddVectorTask::Create(table_name, record_array, _return); RequestScheduler::ExecTask(task_ptr); } void RequestHandler::SearchVector(std::vector &_return, const std::string &table_name, const std::vector &query_record_array, const std::vector &query_range_array, const int64_t topk) { BaseTaskPtr task_ptr = SearchVectorTask::Create(table_name, std::vector(), query_record_array, query_range_array, topk, _return); RequestScheduler::ExecTask(task_ptr); } void RequestHandler::SearchVectorInFiles(std::vector<::milvus::thrift::TopKQueryResult> &_return, const std::string& table_name, const std::vector &file_id_array, const std::vector<::milvus::thrift::RowRecord> &query_record_array, const std::vector<::milvus::thrift::Range> &query_range_array, const int64_t topk) { BaseTaskPtr task_ptr = SearchVectorTask::Create(table_name, file_id_array, query_record_array, query_range_array, topk, _return); RequestScheduler::ExecTask(task_ptr); } void RequestHandler::DescribeTable(thrift::TableSchema &_return, const std::string &table_name) { BaseTaskPtr task_ptr = DescribeTableTask::Create(table_name, _return); RequestScheduler::ExecTask(task_ptr); } int64_t RequestHandler::GetTableRowCount(const std::string& table_name) { int64_t row_count = 0; { BaseTaskPtr task_ptr = GetTableRowCountTask::Create(table_name, row_count); RequestScheduler::ExecTask(task_ptr); task_ptr->WaitToFinish(); } return row_count; } void RequestHandler::ShowTables(std::vector &_return) { BaseTaskPtr task_ptr = ShowTablesTask::Create(_return); RequestScheduler::ExecTask(task_ptr); } void RequestHandler::Ping(std::string& _return, const std::string& cmd) { BaseTaskPtr task_ptr = PingTask::Create(cmd, _return); RequestScheduler::ExecTask(task_ptr); } } } }