aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmlprofiler/qmlprofilerclientmanager.h
diff options
context:
space:
mode:
authorChristiaan Janssen <christiaan.janssen@nokia.com>2012-02-24 10:47:17 +0100
committerChristiaan Janssen <christiaan.janssen@nokia.com>2012-03-14 11:38:25 +0100
commitb7304e2f2e533b767bcd1c02d8403e3d5fa63ddd (patch)
tree30bb48a69d7c6bd1c35bcdd359a757486f298368 /src/plugins/qmlprofiler/qmlprofilerclientmanager.h
parentd207165f6aa89ee95bd41c41a49d68cfa0b46444 (diff)
QmlProfiler: Refactor
The code of the qmlprofiler client has become a bit too complex, this patch reorganizes the modules in a more sensible way, having the modules communicate with each other through a state machine instead of the excess of signals and slots from before. Change-Id: I76f7313779888a1bd07a1cdb1acbf2e47aacf42a Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src/plugins/qmlprofiler/qmlprofilerclientmanager.h')
-rw-r--r--src/plugins/qmlprofiler/qmlprofilerclientmanager.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.h b/src/plugins/qmlprofiler/qmlprofilerclientmanager.h
new file mode 100644
index 0000000000..35766e7a5a
--- /dev/null
+++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.h
@@ -0,0 +1,102 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+
+#ifndef QMLPROFILERCLIENTMANAGER_H
+#define QMLPROFILERCLIENTMANAGER_H
+
+#include <QObject>
+#include <QStringList>
+
+#include "qmlprofilerstatemanager.h"
+#include <qmljsdebugclient/qmlprofilereventlocation.h>
+
+namespace QmlProfiler {
+namespace Internal {
+
+class QmlProfilerClientManager : public QObject
+{
+ Q_OBJECT
+public:
+ explicit QmlProfilerClientManager(QObject *parent = 0);
+ ~QmlProfilerClientManager();
+
+ void registerProfilerStateManager(QmlProfilerStateManager *profilerState);
+
+ void setTcpConnection(QString host, quint64 port);
+ void setOstConnection(QString ostDevice);
+
+ void clearBufferedData();
+
+signals:
+ void connectionFailed();
+
+ // data
+ void addRangedEvent(int,qint64,qint64,QStringList,QmlJsDebugClient::QmlEventLocation);
+ void addV8Event(int,QString,QString,int,double,double);
+ void addFrameEvent(qint64,int,int);
+ void traceStarted(qint64);
+ void traceFinished(qint64);
+ void dataReadyForProcessing();
+
+public slots:
+ void connectClient(quint16 port);
+ void disconnectClient();
+
+private slots:
+ void tryToConnect();
+ void connectionStateChanged();
+ void retryMessageBoxFinished(int result);
+
+ void qmlComplete();
+ void v8Complete();
+
+ void profilerStateChanged();
+ void clientRecordingChanged();
+ void serverRecordingChanged();
+
+private:
+ class QmlProfilerClientManagerPrivate;
+ QmlProfilerClientManagerPrivate *d;
+
+ void connectToClient();
+
+ void enableServices();
+ void connectClientSignals();
+ void disconnectClientSignals();
+
+ void stopClientsRecording();
+};
+
+}
+}
+
+#endif // QMLPROFILERCLIENTMANAGER_H