aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/axivion/localbuild.h
blob: e8a6ad185100b2a5d55a4f81ab4897318d7a06a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#pragma once

#include <QString>

namespace Axivion::Internal {

struct LocalDashboardAccess
{
    QString user;
    QString password;
    QString url;
};

void checkForLocalBuildResults(const QString &projectName, const std::function<void()> &callback);
void startLocalDashboard(const QString &projectName, const std::function<void()> &callback);
bool shutdownAllLocalDashboards(const std::function<void()> &callback);

std::optional<LocalDashboardAccess> localDashboardAccessFor(const QString &projectName);

bool startLocalBuild(const QString &projectName);
void cancelLocalBuild(const QString &projectName);
bool hasRunningLocalBuild(const QString &projectName);

enum class LocalBuildState { None, Started, Building, Analyzing, UpdatingDashboard, Finished };

struct LocalBuildInfo
{
    LocalBuildState state = LocalBuildState::None;
    QString buildOutput = {};
    QString axivionOutput = {};
};

LocalBuildInfo localBuildInfoFor(const QString &projectName);
void removeFinishedLocalBuilds();

} // namespace Axivion::Internal