* -------------------------------------------------------------------------
* This file is part of the MindStudio project.
* Copyright (c) 2025 Huawei Technologies Co.,Ltd.
*
* MindStudio is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
*
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* -------------------------------------------------------------------------
*/
#include "pch.h"
#include "ProtocolDefs.h"
#include "QueryThreadTracesHandler.h"
#include "QueryThreadsHandler.h"
#include "QueryThreadDetailHandler.h"
#include "QuerySystemViewHandler.h"
#include "ResetWindowHandler.h"
#include "ImportActionHandler.h"
#include "SearchCountHandler.h"
#include "SearchSliceHandler.h"
#include "RemoteDeleteHandler.h"
#include "QueryFlowCategoryListHandler.h"
#include "QueryFlowCategoryEventsHandler.h"
#include "QueryUnitCounterHandler.h"
#include "QueryThreadTracesSummaryHandler.h"
#include "QueryKernelDetailHandler.h"
#include "QueryOneKernelHandler.h"
#include "SetCardAliasHandler.h"
#include "QueryThreadsSameOperatorHandler.h"
#include "QueryFlowsBySliceInfoHandler.h"
#include "SearchAllSlicesHandler.h"
#include "QueryEventsViewHandler.h"
#include "QueryCommunicationKernelHandler.h"
#include "QuerySystemViewOverallHandler.h"
#include "QueryOverallMoreDetailsHandler.h"
#include "QueryExpAnaAICoreFreqHandler.h"
#include "QueryTableDataNameListHandler.h"
#include "QueryTableDataDetailHandler.h"
#include "CreateCurveHandler.h"
#include "ParseCardsHandler.h"
#include "RenderEngine.h"
#include "DataEngine.h"
#include "RepositoryFactory.h"
#include "TimelineModule.h"
#include "QueryMemcpyDetailHandler.h"
#include "QueryMemcpyOverallHandler.h"
#include "QuerySystemViewFtraceStatHandler.h"
#include "QueryKernelE2ETimeHandler.h"
#include "RankOffsetHandler.h"
#include "QuerySystemViewTraceHandler.h"
namespace Dic {
namespace Module {
using namespace Dic::Module::Timeline;
TimelineModule::TimelineModule() : BaseModule() { moduleName = MODULE_TIMELINE; }
TimelineModule::~TimelineModule() { requestHandlerMap.clear(); }
void TimelineModule::RegisterRequestHandlers() {
requestHandlerMap.clear();
auto respotoryFactory = RepositoryFactory::Instance();
auto dataEngine = DataEngine::Instance();
dataEngine->SetRepositoryFactory(respotoryFactory);
auto renderEngine = RenderEngine::Instance();
renderEngine->SetDataEngineInterface(dataEngine);
auto queryThreadTracesHandler = std::make_unique<QueryThreadTracesHandler>();
queryThreadTracesHandler->SetRenderEngine(renderEngine);
requestHandlerMap.emplace(REQ_RES_UNIT_THREAD_TRACES, std::move(queryThreadTracesHandler));
requestHandlerMap.emplace(REQ_RES_UNIT_THREAD_TRACES_SUMMARY, std::make_unique<QueryThreadTracesSummaryHandler>());
requestHandlerMap.emplace(REQ_RES_UNIT_THREADS, std::make_unique<QueryThreadsHandler>());
auto queryThreadDetailHandler = std::make_unique<QueryThreadDetailHandler>();
queryThreadDetailHandler->SetRenderEngine(renderEngine);
requestHandlerMap.emplace(REQ_RES_UNIT_THREAD_DETAIL, std::move(queryThreadDetailHandler));
requestHandlerMap.emplace(REQ_RES_UNIT_FLOWS, std::make_unique<QueryFlowsBySliceInfoHandler>());
requestHandlerMap.emplace(REQ_RES_RESET_WINDOW, std::make_unique<ResetWindowHandler>());
requestHandlerMap.emplace(REQ_RES_UNIT_SET_CARD_ALIAS, std::make_unique<SetCardAliasHandler>());
requestHandlerMap.emplace(REQ_RES_IMPORT_ACTION, std::make_unique<ImportActionHandler>());
requestHandlerMap.emplace(REQ_RES_PARSE_CARDS, std::make_unique<ParseCardsHandler>());
requestHandlerMap.emplace(REQ_RES_SEARCH_COUNT, std::make_unique<SearchCountHandler>());
requestHandlerMap.emplace(REQ_RES_SEARCH_SLICE, std::make_unique<SearchSliceHandler>());
requestHandlerMap.emplace(REQ_RES_REMOTE_DELETE, std::make_unique<RemoteDeleteHandler>());
requestHandlerMap.emplace(REQ_RES_FLOW_CATEGORY_LIST, std::make_unique<QueryFlowCategoryListHandler>());
auto queryFlowCategoryEventsHandler = std::make_unique<QueryFlowCategoryEventsHandler>();
queryFlowCategoryEventsHandler->SetRenderEngine(renderEngine);
requestHandlerMap.emplace(REQ_RES_FLOW_CATEGORY_EVENTS, std::move(queryFlowCategoryEventsHandler));
requestHandlerMap.emplace(REQ_RES_UNIT_COUNTER, std::make_unique<QueryUnitCounterHandler>());
requestHandlerMap.emplace(REQ_RES_UNIT_SYSTEM_VIEW, std::make_unique<QuerySystemViewHandler>());
requestHandlerMap.emplace(REQ_RES_UNIT_SYSTEM_VIEW_TRACE, std::make_unique<QuerySystemViewTraceHandler>());
requestHandlerMap.emplace(REQ_RES_UNIT_KERNEL_DETAILS, std::make_unique<QueryKernelDetailHandler>());
requestHandlerMap.emplace(REQ_RES_KERNEL_E2E_TIME, std::make_unique<QueryKernelE2ETimeHandler>());
requestHandlerMap.emplace(REQ_RES_ONE_KERNEL_DETAILS, std::make_unique<QueryOneKernelHandler>());
requestHandlerMap.emplace(REQ_RES_TABLE_DATA_NAME_LIST, std::make_unique<QueryTableDataNameListHandler>());
requestHandlerMap.emplace(REQ_RES_TABLE_DATA_DETAIL, std::make_unique<QueryTableDataDetailHandler>());
requestHandlerMap.emplace(REQ_RES_COMMUNICATION_KERNEL_DETAIL, std::make_unique<QueryCommunicationKernelHandler>());
requestHandlerMap.emplace(REQ_RES_SAME_OPERATORS_DURATION, std::make_unique<QueryThreadsSameOperatorHandler>());
requestHandlerMap.emplace(REQ_RES_SEARCH_ALL_SLICES, std::make_unique<SearchAllSlicesHandler>());
requestHandlerMap.emplace(REQ_RES_UNIT_EVENTS_VIEW, std::make_unique<QueryEventsViewHandler>());
requestHandlerMap.emplace(REQ_RES_SYSTEM_VIEW_OVERALL, std::make_unique<QuerySystemViewOverallHandler>());
requestHandlerMap.emplace(
REQ_RES_SYSTEM_VIEW_OVERALL_MORE_DETAILS, std::make_unique<QueryOverallMoreDetailsHandler>());
requestHandlerMap.emplace(REQ_RES_EXPERT_ANALYSIS_AICORE_FREQ, std::make_unique<QueryExpAnaAICoreFreqHandler>());
requestHandlerMap.emplace(REQ_RES_CREATE_CURVE, std::make_unique<CreateCurveHandler>());
requestHandlerMap.emplace(REQ_RES_MEMCPY_OVERALL, std::make_unique<QueryMemcpyOverallHandler>());
requestHandlerMap.emplace(REQ_RES_MEMCPY_DETAIL, std::make_unique<QueryMemcpyDetailHandler>());
requestHandlerMap.emplace(REQ_RES_SYSTEM_VIEW_FTRACE_STAT, std::make_unique<QuerySystemViewFtraceStatHandler>());
requestHandlerMap.emplace(REQ_RES_RANK_OFFSET, std::make_unique<RankOffsetHandler>());
}
void TimelineModule::OnRequest(std::unique_ptr<Protocol::Request> request) {
BaseModule::OnRequest(std::move(request));
};
}
}