MCPcopy Create free account
hub / github.com/Codeya-IDE/deepin-ide / start

Method start

src/plugins/performance/mainframe/mainwindow.cpp:113–173  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

111}
112
113void MainWindow::start(uint pid)
114{
115 if (!d->server) {
116 QString toolsPath = CustomPaths::global(CustomPaths::Tools);
117 QString adapter = toolsPath + QDir::separator() + "performanceadapter";
118 d->server = new QProcess();
119
120 QObject::connect(d->server, &QProcess::errorOccurred, [=](QProcess::ProcessError error){
121 qCritical() << "server >> " << error << d->server->errorString();
122 });
123 QObject::connect(d->server, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
124 [](int exit, QProcess::ExitStatus status) {
125 qCritical() << "server >> "
126 << "exit: " << exit
127 << "status: " << status;
128 });
129#ifdef QT_DEBUG
130 QObject::connect(d->server, &QProcess::readyReadStandardError, [=](){
131 qInfo() << "server stderr >> " << d->server->readAllStandardError();
132 });
133 QObject::connect(d->server, &QProcess::readyReadStandardOutput, [=](){
134 qInfo() << "server stdout >> " << d->server->readAllStandardOutput();
135 });
136#endif
137 qInfo() << adapter << "--port" << d->port;
138 d->server->start(adapter, {"--port", QString::number(d->port)});
139 d->server->waitForReadyRead();
140 }
141
142 if (!d->client) {
143 d->client = new Client(d->host, d->port);
144 auto cliThread = new QThread();
145 d->client->moveToThread(cliThread);
146 QObject::connect(d->client, &Client::pullDataResult,
147 d->jsonTabWidget, &JsonTabWidget::parseJson,
148 Qt::UniqueConnection);
149 cliThread->start();
150 }
151
152 QObject::metaObject()->invokeMethod(d->client, "initialzation", Q_ARG(int, pid));
153
154 d->timer = new QTimer(this);
155 QObject::connect(d->timer, &QTimer::timeout, [=](){
156 if (d->client) {
157 QObject::metaObject()->invokeMethod(d->client, "pullData");
158 } else {
159 d->timer->stop();
160 }
161 });
162 d->timer->start(1000);
163
164
165 if (!d->flameGraphGenTask) {
166 d->flameGraphGenTask = new FlameGraphGenTask;
167 QObject::connect(d->perfRecordDisplay, &PerfRecordDisplay::showWebBrowserGP,
168 d->flameGraphGenTask, &FlameGraphGenTask::showWebBrowser,
169 Qt::UniqueConnection);
170

Callers

nothing calls this directly

Calls 7

connectFunction · 0.85
numberClass · 0.85
readAllStandardErrorMethod · 0.80
readAllStandardOutputMethod · 0.80
waitForReadyReadMethod · 0.80
errorStringMethod · 0.45
stopMethod · 0.45

Tested by

no test coverage detected