aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmlprofiler/qmlprofilerclientmanager.h
Commit message (Collapse)AuthorAgeFilesLines
* QmlProfiler: Avoid some 0 as nullptr warningsUlf Hermann2018-04-171-1/+1
| | | | | Change-Id: I4763a22c6624eaffbb583bf26bf74a3e282b042f Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Merge remote-tracking branch 'origin/4.5'Eike Ziller2018-01-091-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/cpptools/clangcompileroptionsbuilder.cpp src/plugins/cpptools/clangcompileroptionsbuilder.h src/plugins/cpptools/compileroptionsbuilder.cpp src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp src/plugins/qmlprofiler/qmlprofilerclientmanager.h src/plugins/qmlprofiler/qmlprofilertraceclient.cpp src/plugins/qmlprofiler/qmlprofilertraceclient.h src/shared/qbs Change-Id: I364ababc5d41046d17e999096c4a7187c4e4e010
| * QmlProfiler: Retain event types between sessions on same connectionUlf Hermann2018-01-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | The server won't re-send the event types. We need to keep them until the connection goes away. Otherwise we get invalid event types and soft asserts when trying to look up event types for new events. Also, when clearing the event types, also clear the server type IDs. Not clearing those constitutes a memory leak. Change-Id: I564b0c4cf0ed754549d2b8ede63c97fa01affcec Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | QmlDebug: Extract a general QML debug connection manager from QmlProfilerUlf Hermann2017-10-161-44/+9
|/ | | | | | | We can use it for other QmlDebug run controls, too. Change-Id: Iee1cd592848ef4c48954a2674b6fa509223fcda4 Reviewed-by: hjk <hjk@qt.io>
* QmlProfiler: Unify local and tcp connection mechanismUlf Hermann2017-09-211-3/+4
| | | | | | | | | Use the URL scheme to distinguish between them, check that in QmlProfilerClientManager and test all possible combinations of URL parts. Change-Id: I6583e5bf18eda0344a299a279c12578c4ebc7ffe Reviewed-by: hjk <hjk@qt.io>
* Debugger, QmlProfiler et al: Replace AnalyzerStartParameterhjk2017-06-161-8/+3
| | | | | | | | | | | ... and QmlProfilerRunner::Configuaration by PE::UrlConnection, and call it 'serverUrl' on the user side. That's the only variant we ever had and avoids "translations" between three structures that are essential the same. Change-Id: I33386b2b8d2a7985ff934f6f8f840de0831bf9c1 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* QmlProfiler: Move unrelated code out of QmlProfilerClientManagerUlf Hermann2016-08-051-11/+2
| | | | | | | | | | | The client manager should not be bothered with details of QML events, but rather just connect the client, the model manager, and the state manager. Change-Id: Iec4499f8441a06d4ef5cbcf7bfe23da6f5e7f239 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlProfiler: Avoid crash on dtor of client managerUlf Hermann2016-07-251-0/+1
| | | | | Change-Id: Ie4b625a9ae871d56b9d0b59560bfdf6912323b81 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* QmlProfiler: Add some sanity to the client managerUlf Hermann2016-07-201-17/+34
| | | | | | | | | | | Remove the PIMPL pattern, use smart pointers, add asserts for important preconditions, add a timeout also to the local server case, make sure all signal/slot connections to the old connection objects are cleared when retrying to connect, make retry intervals configurable. Change-Id: Ica7df0eaddc48778f13905795871d522401617ed Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: hjk <hjk@qt.io>
* QmlDebug: Decouple log messages from connection failuresUlf Hermann2016-07-181-2/+2
| | | | | | | | | A socket error is not the only possible reason for a connection failure and exposing socket error codes to the upper layers is unnecessary. Change-Id: I27e9f21160ecea5b0d811b83b7ab0ab9071cacff Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QmlProfiler: Move connection failure message to QmlProfilerToolUlf Hermann2016-07-151-2/+1
| | | | | | | and show it on any kind of connection failure, not only on timeout. Change-Id: I6b9c44cd3455d5dd383a552f9b422d3d236b67c4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QmlProfiler: Rename registerProfilerStateManager()Ulf Hermann2016-07-131-1/+1
| | | | | | | ... to follow the convention for setters. Change-Id: Id471a93a1be1beed0438fed710fa09afa5ee2832 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QmlProfiler: Remove duplicate methodUlf Hermann2016-05-241-1/+0
| | | | | Change-Id: Iad8420e5836ad8bc3efc9ecf67bf85b005ede7d5 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* QmlProfiler: rename qmlprofilereventlocation.h to qmleventlocation.hUlf Hermann2016-05-101-1/+1
| | | | | | | This way the file name matches the class name. Change-Id: I6e65b0ea13a7e5b15d4c7e5ad7738fc03e3401ad Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QmlProfiler: Apply some code cosmeticsUlf Hermann2016-05-061-2/+2
| | | | | Change-Id: I772713aec3a6c25136174b39b853a9ef3ee42a0b Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Move QmlProfiler specific files from qmldebug to qmlprofilerUlf Hermann2016-05-031-1/+1
| | | | | | | | | | These file were not used anywhere else and had no business to be in qmldebug to begin with. Moving them allows us to drop a number of namespace qualifications and forces us to rename a few local symbols in other classes in order to avoid name clashes. Change-Id: I658ed455eec027cbaddacf2980d2ea6827ae6205 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Use Utils::Port where possibleUlf Hermann2016-04-201-2/+3
| | | | | | | This solves the ambiguity between 0 and -1 being the "invalid" port. Change-Id: I3bac11dd4117bb1820fbd58186699925b73df1c5 Reviewed-by: hjk <hjk@theqtcompany.com>
* Wholesale conversion to #pragma oncehjk2016-03-301-4/+1
| | | | | | | Kudos to cgmb and https://github.com/cgmb/guardonce Change-Id: Ifa8970734b8d43fd08c9260c645bdb0228633791 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* Update License according to agreement with Free Qt FoundationTobias Hunger2016-01-191-17/+12
| | | | | | | * Update files in src/plugins Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* QmlProfiler: Deobfuscate connection mechanismUlf Hermann2015-12-021-2/+0
| | | | | | | | | | | Whenever we create the connection we as well try connectToHost() immediately instead of deferring it until the next timeout. The else branch in tryToConnect() would never be executed because if the connection is there and not connecting or connected, then the socketState must be != ConnectedState. Change-Id: I6736b35348671961fbb3a48edb5e9c6c1d7ce915 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmlProfiler: allow for multiple sequential traces to be aggregatedUlf Hermann2015-11-191-0/+3
| | | | | | Task-number: QTCREATORBUG-13317 Change-Id: Ic7d1d5c94d8d522741b6c4207a21a43f521da5fb Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmlProfiler: Send the client recording state to new enginesUlf Hermann2015-11-191-0/+1
| | | | | | | | | | | | | | | | Otherwise some engine can stop recording by sending a "Complete" event and that will be the state we send to any new engines, although the recording button was checked when the recording started. Also, don't redirect state changes and the associated recording state sending through a signal and slot. This allows us to remove the "enabled" property of QmlProfilerTraceClient and adapt the signature of sendRecordingStatus() to facilitate the redirection of newEngine() through the client manager. Task-number: QTCREATORBUG-13317 Change-Id: Ie9dc6785eb761514bc96aaf5724f7b23d3c2932e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmlProfiler: Support local connections on Qt >= 5.6Ulf Hermann2015-11-191-2/+4
| | | | | | | | | | This removes the need to receive messages from the application via stderr. The "Connecting to socket" is still parsed, but only for diagnostic purposes. If it doesn't arrive, the profiling will still work. Change-Id: I022691293da2a1e671ba1263bc76e4044bf1a5b7 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmlDebug: Simplify error and state signalingUlf Hermann2015-11-191-2/+3
| | | | | | | | | There is no point in sending two signals for every state change and error. Also, the signals only reflect events in the socket, not in the logical connection. Change-Id: I617a925c69164aa1a02a7781b9da7dca55daa304 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmlProfiler: Delete debug connection on error or if params changeUlf Hermann2015-11-031-0/+2
| | | | | | | | | | Now that we don't recreate the debug connection anymore when (re)trying to connect, we have to do it explicitly when changing the connection parameters or when a connection attempt fails and we need to cancel the "Connecting" state. Change-Id: Ib2b6b4fb1e39e64fe3c9f2bf90b6e43043d05a9e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmlProfiler: Remove QmlProfilerClientManager::serverRecordingChangedUlf Hermann2015-09-111-1/+0
| | | | | | | | It doesn't do anything useful. Also the qmlDataReady member is write-only and can be removed. Change-Id: I667b05611cfc5960eb2fd73254a7b3c621ae98a3 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmlProfiler: Refactor complete() methodsUlf Hermann2015-09-111-1/+0
| | | | | | | | | | The complete() methods do something more specific. We should call them by what they do. Also, we don't need to signal the finishing of data acquisition via a signal and most of the postprocessing can happen in the worker thread. Change-Id: Iae986aefb8e7e7d4327c481d7a85325bbff7fa48 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmlProfiler: Remove OST connection modeUlf Hermann2015-09-101-2/+0
| | | | | | | Whatever that is, it definitely didn't work. Change-Id: Ib15b9dcad6e22d52285a253b234989e55d817268 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmlProfiler: Expose flush interval to userUlf Hermann2015-08-311-0/+2
| | | | | | | | | | | | | | | | Flushing data while the application is running can distort the results because the flushing itself takes time. However, not flushing leads to longer load times in the end and higher memory usage. The best strategy depends on the application being analyzed and the users should decide if they want to flush or not. The settings infrastructure also paves the way for preserviing the layout of the timeline and statistics views as well as the category filters across sessions. Change-Id: I2cdc37c7fc7eb9b05b6870955ddffaa712d6c956 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QmlProfiler: remove V8 tabJoerg Bornemann2015-05-271-1/+0
| | | | | | | | V8 is gone long enough to stop supporting it. Change-Id: If086925359097a69ffab2b2eba4de6f63bd5195e Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com> Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
* Update LicenseEike Ziller2015-01-161-6/+6
| | | | | Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* License updateEike Ziller2014-10-091-7/+8
| | | | | Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* QmlDebugClient: hide all the socket details from clientsUlf Hermann2014-05-081-1/+4
| | | | | | | | | | | Like this no one will get the idea that the socket state represents the connection state and we can safely replace the underlying implementation with something not derived from QAbstractSocket. All the logging is retained but the connection creates the messages now. Change-Id: If84ff42f1fa9785254fbd49c75be867b9f663c83 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* QmlProfiler: Guess the trace end time if we don't receive EndTraceUlf Hermann2014-04-041-1/+1
| | | | | | | | Task-number: QTCREATORBUG-11952 Change-Id: Ie55b616a1fc54e0cccac5560ec66fb7cc496c8e2 Reviewed-by: Robert Loehning <robert.loehning@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* Incremented year in copyright infoRobert Loehning2014-01-081-1/+1
| | | | | | Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* QmlProfiler: reworkedChristiaan Janssen2013-08-091-13/+8
| | | | | Change-Id: I66a236a024d76e7bef6edfb91ae30b5dd098b76b Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* QmlProfiler: clean up QmlProfiler{State,Client}Managerhjk2013-08-011-8/+9
| | | | | Change-Id: I538fbae5be9750b9b00f82d467136a8500e8f8e6 Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
* Incremented year in copyright infov2.6.2Robert Loehning2013-01-291-1/+1
| | | | | Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Adjust license headershjk2012-10-051-21/+20
| | | | | Change-Id: Ice592c6de9951ee3b2c4cb52ed0bb3b6770e0825 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* Contact -> qt-project.orgEike Ziller2012-07-191-3/+1
| | | | | Change-Id: I7134d7de30bcf9f9dcfad42520dd45ee083a852d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* QmlProfiler: manage premature disconnection when app killedChristiaan Janssen2012-05-111-0/+1
| | | | | | | | | | The profiler tool was assuming that the socket would get disconnected after the application was stopped by the user. Sometimes it is not the case. This patch manages the oposite situation gracefully. Change-Id: I4ae439bf2ce6caece37e97f735e980d18c446df0 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* QmlProfiler: manage receiving trace after app stoppedChristiaan Janssen2012-05-091-0/+1
| | | | | Change-Id: I97409748ebac3ee8af3690f2d84d3038638a3419 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* QmlProfiler: show binding typesChristiaan Janssen2012-05-041-1/+1
| | | | | Change-Id: Iea469aa3e0fb7c4e5146163f049c930df6fc2b7d Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* QmlDebug: Rename library and (most) classesKai Koehne2012-04-181-2/+2
| | | | | | | | | | | | | | | | | Rename the QmlJSDebugClient lib to QmlDebug (shorter names, easier differentiation with the shared/qmljsdebug lib). Also rename - QDeclarativeDebug* classes to QmlDebug* - QDeclarativeOutputParser class to QmlOutputParser To clarify the features, - Debugger::QmlDebuggerClient is now Debugger::BaseQmlDebuggerClient - QmlEngineDebugClient is now BaseEngineDebugClient - QmlDebuggerClient is now QmlEngineDebugClient - QDeclarativeEngineDebugClient is now DeclarativeEngineDebugClient Change-Id: Ie15713730a614c8ab4b637fad0924f95b54e633f Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
* QmlProfiler: flush on new traceChristiaan Janssen2012-03-261-0/+1
| | | | | | | | | Discard pending data if a new trace arrives while an old one was still being processed. If we don't, the data of both traces gets mixed, leading to a possible crash. Change-Id: Ibba7df06f6a4b7e93d00f6fa1fa4802baf3a1731 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* QmlProfiler: RefactorChristiaan Janssen2012-03-141-0/+102
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>