Files
DRAMSys/extensions/apps/traceAnalyzer/businessObjects/dramTimeDependencies/phasedependenciestracker.h

51 lines
1.6 KiB
C++

/*
* Copyright (c) 2025 Fraunhofer IESE. All rights reserved.
*
* Authors:
* Iron Prando da Silva
*/
#pragma once
#include <QString>
#include <string>
#include <vector>
#include "common/common.h"
#include "configurations/configurationfactory.h"
#include "data/tracedb.h"
class PhaseDependenciesTracker
{
public:
static void calculateDependencies(TraceDB& tdb, std::vector<QString>& dependencyFilter);
private:
static void mDropTable(TraceDB& tdb);
static void mCreateTable(TraceDB& tdb);
static void mInsertIntoTable(TraceDB& tdb, const std::vector<DBDependencyEntry>& entries);
static const std::vector<std::shared_ptr<DBPhaseEntryBase>>
mGetFilteredPhases(const std::shared_ptr<ConfigurationBase>,
TraceDB& tdb,
const std::vector<QString>& commands);
static const std::vector<DBDependencyEntry>
mCalculateDependencies(const std::shared_ptr<ConfigurationBase>,
const std::vector<std::shared_ptr<DBPhaseEntryBase>>& phases,
std::vector<QString>& commands);
static QSqlQuery mExecuteQuery(TraceDB& tdb, const QString queryStr);
PhaseDependenciesTracker() = delete;
~PhaseDependenciesTracker() = delete;
private:
static void mBeginTransaction(TraceDB& tdb);
static void mRollbackChanges(TraceDB& tdb);
static void mCommitTransaction(TraceDB& tdb);
inline static void mAddFirstEntryCommandString(QString& command,
const DBDependencyEntry& entry);
inline static void mAddEntryCommandString(QString& command, const DBDependencyEntry& entry);
};