* -------------------------------------------------------------------------
* 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.
* -------------------------------------------------------------------------
*/
#ifndef PROFILER_SERVER_COMMUCATIONTASKINFO_H
#define PROFILER_SERVER_COMMUCATIONTASKINFO_H
#include "TextTableColum.h"
#include "Table.h"
namespace Dic::Module::Timeline {
struct CommucationTaskInfoPO {
uint64_t id = 0;
uint64_t name = 0;
uint64_t globalTaskId = 0;
uint64_t taskType = 0;
uint64_t planeId = 0;
uint64_t groupName = 0;
uint64_t notifyId = 0;
uint64_t rdmaType = 0;
uint64_t srcRank = 0;
uint64_t dstRank = 0;
uint64_t transportType = 0;
uint64_t size = 0;
uint64_t dataType = 0;
uint64_t linkType = 0;
double bandwidth = 0;
uint64_t opId = 0;
};
class CommucationTaskInfoTable : public Table<CommucationTaskInfoPO> {
public:
CommucationTaskInfoTable() = default;
~CommucationTaskInfoTable() = default;
protected:
const std::unordered_map<std::string_view, assign> &GetAssignMap() override {
static std::unordered_map<std::string_view, assign> assignMap = {{CommucationTaskInfoColumn::ROW_ID, IdHandle},
{CommucationTaskInfoColumn::NAME, NameHandle},
{CommucationTaskInfoColumn::GLOBAL_TASK_ID, GlobalTaskIdHandle},
{CommucationTaskInfoColumn::TASK_TYPE, TaskTypeHandle},
{CommucationTaskInfoColumn::PLANE_ID, PlaneIdHandle},
{CommucationTaskInfoColumn::GROUPNAME, GroupNameHandle},
{CommucationTaskInfoColumn::NOTIFY_ID, NotifyIdHandle},
{CommucationTaskInfoColumn::RDMA_TYPE, RdmaTypeHandle},
{CommucationTaskInfoColumn::SRC_RANK, SrcRankHandle}, {CommucationTaskInfoColumn::DST_RANK, DstRankHandle},
{CommucationTaskInfoColumn::TRANSPORT_TYPE, TransportTypeHandle},
{CommucationTaskInfoColumn::SIZE, SizeHandle}, {CommucationTaskInfoColumn::DATA_TYPE, DataTypeHandle},
{CommucationTaskInfoColumn::LINK_TYPE, LinkTypeHandle},
{CommucationTaskInfoColumn::BANDWIDTH, BandwidthHandle}, {CommucationTaskInfoColumn::OP_ID, OpIdHandle}};
return assignMap;
}
const std::string &GetTableName() override {
static std::string tableName = "COMMUNICATION_TASK_INFO";
return tableName;
}
static void IdHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void NameHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void GlobalTaskIdHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void TaskTypeHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void PlaneIdHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void GroupNameHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void NotifyIdHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void RdmaTypeHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void SrcRankHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void DstRankHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void TransportTypeHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void SizeHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void DataTypeHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void LinkTypeHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void OpIdHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
static void BandwidthHandle(
CommucationTaskInfoPO &commucationTaskInfoPO, const std::unique_ptr<SqliteResultSet> &resultSet);
};
}
#endif