summaryrefslogtreecommitdiffstats
path: root/src/remoteobjects/qremoteobjectnode_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Use SPDX license identifiersLucie Gérard2022-06-141-38/+2
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I315d7ce1d6c6c3497afdfe8b61a113fdc181c935 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Get rid of calls to virtual methods inside constructorsSona Kurazyan2021-08-241-0/+14
| | | | | | | | | | | | | | | | | | Move the implementations of setRegistryUrl() and setHostUrl() virtual methods to the non-virtual methods in the corresponding private classes and call them from the constructors. Although in the context of the current code the virtual method calls were legal and didn't lead to anything unexpected, but generally it's not recommended (so the codechecker complains) and can lead to issues in future, for example when refactoring or changing the code. Pick-to: 6.2 Task-number: QTBUG-95752 Change-Id: I13b97e3a1e179b0e5ce5bc7e9bbb9f5bb7166ebb Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Rename the classes for adding a custom transport supportSona Kurazyan2021-06-171-5/+5
| | | | | | | | | | | | | Added QtRO prefix to IoDeviceBase, ServerIoDevice and ClientIoDevice classes. These classes are exported and can be used externally for supporting a custom transport by deriving from them and implementing the virtual methods. Added the prefix also to ExternalIoDevice, to keep the naming consistent. Pick-to: 6.2 Change-Id: I64845cff55687a127d2c43de03ecc65ac9bd321b Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Move client-side Codec to IoDeviceBaseBrett Stottlemyer2021-05-271-2/+0
| | | | | | | | | | This is more appropriate than having a separate mapping of connection to Codec. Change-Id: I3b54bfb479de04706a3f9563e7a987af91d0282d Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Refactor serialization code into an abstracted classBrett Stottlemyer2021-05-271-1/+2
| | | | | | | | | | | This hides implementation details and allows for different implementations in the future. Change-Id: I5502bb040afe502f7b127668cf7ff81ee79f5e89 Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Fix broken testsBrett Stottlemyer2020-06-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | This addresses the regressions from moving to Qt6's metatype changes. The underlying changes in QtBase allow for better compile time support for type generation and automatically clear dynamically generated types based on reference count. There are three primary fixes. 1) For Gadgets, the constructor needs to copy the original QVariantList instance in to the newly constructed value. This is the only way the types of the variants will be known for the QDataStream `>>` operator to work. 2) Enum registration needs to occur _before_ the metaobjectbuilder's toMetaObject() method is called in order for property metaobject's to be defined. 3) A little surprisingly, it is the id() method on the QMetaType that does the actual registration, and the object this is called on needs to be kept around to keep the reference count and prevent unregistration. Fixes: QTBUG-83333 Task-number: QTBUG-84590 Change-Id: Ie93ff60276177c3c713dd0bd3bfc08a03cf98e07 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Ensure proxied objects are correctly unproxiedMichael Brasser2019-05-011-0/+3
| | | | | | | | | If the server goes away, we must unproxy the objects. Otherwise if the server returns we will end up attempting to reproxy the same objects. As a side effect the proxy_multprocess autotest becomes more stable. Change-Id: I9f3f0c9e4aa40790da7a999273badb141beacd62 Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Fix registration for dynamic ReplicasBrett Stottlemyer2019-05-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds new tests for checking that the proxy (which uses dynamic replicas to avoid needing to include headers for all proxied types) works correctly over multiple processes. This found several edge cases not seen in the earlier (single process) proxy auto tests. 1) When sending a new sub class to a dynamic replica, the properties need to be stored in a separate QByteArray and extracted after the metatype info (for both classes and gadgets) is processed. 2) When the templated acquire is used, the metatype information needs to be added to the dynamicTypeManager. 3) There is an edge case where the DynamicApiMap for a null object could not be built correctly. In this case, it needed to be regenerated once a valid object was available for the Replica sub-class. 4) There were several edge cases where the typeName needed to be updated. [ChangeLog][Important Behavior Changes] Qt Remote Objects uses an internal protocol to pass data between processes and/or devices. The same protocol version needs to be used on all sides. The version was bumped from 1.2 to 1.3 in this release, fixing potential crashes (see QTBUG-75017). If there is a mismatch, the connecting node will output a warning and the host node will not send any data. Change-Id: I7af50f16ed370351eb0692d5f4b983848846b504 Fixes: QTBUG-75017 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Fix include directivesFriedemann Kleint2019-01-181-2/+2
| | | | | | | | | | Always prepend the module and use headers directly. Qt for Python requires the modules to be present. Task-number: PYSIDE-862 Fixes: QTBUG-72675 Change-Id: I94e38fbab0f041370ca9d67ca13c78f0d33816b7 Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Unregister types that are not neededv5.12.0-beta3v5.12.0-beta2BogDan Vatra2018-10-091-1/+1
| | | | | | Change-Id: I370e462780e25b788afc599f03ef2189e41d6476 Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Merge remote-tracking branch 'origin/5.11' into 5.12Qt Forward Merge Bot2018-08-211-1/+2
|\ | | | | | | Change-Id: Ia8536328b6ea1c25923e40b473be54045375d31f
| * Fix issue proxying modelsMichael Brasser2018-08-141-1/+2
| | | | | | | | | | Change-Id: Ie3fd6a57559604aea231aad7936ffbaf9cdce185 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | Support externally generated QIODevicesBrett Stottlemyer2018-08-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the APIs that will be necessary to create SSL sockets flexibly (and outside of QtRO) and pass them in. The integration tests are extended to show everything works if the tcp/ip connection is created outside QtRO. The Registry is supported by allowing an "external schema" to be set as the HostNode's url, which is then used by the registry as the address for any remoted() source objects. The client Node calls registerExternalSchema() with a std::function callback that can create the client-side QIODevice given the registry provided url. Change-Id: I0f2d0ea270771e096a787134ef87d537769045f6 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-04-301-1/+31
|\| | | | | | | | | | | | | Conflicts: src/remoteobjects/qremoteobjectnode.cpp Change-Id: I91e662166909a52817e2e14d2b379c46b3756d89
| * Support non-CONSTANT pointer typesBrett Stottlemyer2018-04-251-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to supporting nested source objects (internally), there was no way to support changing pointed to objects. Thus repc forced MODEL and CLASS types to be CONSTANT. This change adds update support, which required a few internal changes. First of all, the Q_PROPERTY flags were extended to include a new mode, SOURCEONLYSETTER. Having a replica setter for a pointer type makes no sense (it wouldn't then be part of the API contract, and would fail if the Node containing the replica dropped off the bus). So READWRITE didn't make sense for pointer types. That left READONLY, but that mode generated a protected, not public, setter on the Source side (the idea being that something internal to the source class, not public, would change the values). This would limit the functionality of pointer types, as they could only be updated by inheriting from a Source class. Adding SOURCEONLYSETTER addresses this, making the property read-only on the replica-side, but read/write (with a public setter) on the source-side. MODEL/CLASS now use SOURCEONLYSETTER. Another internal impact is that templated acquire calls (where metaobject data does not need to be sent from the source to define the type) can now be updated, which requires storing the compile-time generated metaobject for re-use. Thus a staticTypes member was added to the node metaoject- manager. Several tests (the ones with pointer-to-qobject properties) needed updating since those properties are not constant anymore, and thus don't have (or require) constructor parameters for setting the values. Change-Id: If20cb0fb673d5e91613f9c238b514ed05380f975 Reviewed-by: Michael Brasser <michael.brasser@live.com>
| * Allow nodes to proxy (or convert) replicasBrett Stottlemyer2018-04-251-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | This would support, for example, using the "local" (or "qnx") backend on a target, while still supporting debug via proxying the same objects over a single tcp connection. It should also, in theory, support converting to other marshalling formats (maybe CBOR?). Change-Id: Ib3c536d0c99b7a722c1c6ed145c8b5b567453f76 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-04-211-1/+0
|\| | | | | | | Change-Id: I1a0f084cf418f0eae22891d2011c00bac8e54476
| * Update registry handlingBrett Stottlemyer2018-04-171-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | The change allows the registry to use the automatic reconnect strategy to repeat the attempts to connect if the registry is not initially available. It also takes advantage of the registry replica's storage of known types, to allow replicas and sources to be used before the registry initialization occurs, thus removing the need for the node's atomic isInitialized parameter. Change-Id: I1734988f0c7926ff4fb64dbc9a5fd35fee889e7a Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-04-141-0/+16
|\| | | | | | | Change-Id: I7d3ccacaf7d2ce429a530993e4ea81cf3adf7958
| * Allow recursive packetizing of typesBrett Stottlemyer2018-04-051-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | We create a new type (QRO_) to allow storing a subclass as a variant. Thus when a QObject* property is marshalled, all of the pointed to properties can be sent as a single variant. This can be decoded into the proper type on the replica side. This required giving Node's private a new QRemoteObjectMetaObjectManager, a class to handle the building of dynamic metatypes. Change-Id: Ib83b1edb2fd37dd12defb066d4c2b69509985eaa Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | Clean up override/final, consistent destructorsBrett Stottlemyer2018-03-201-3/+3
|/ | | | | | | Change-Id: I3ab651af68389bb7ea3aad1595873c9488f3dd9d Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: BogDan Vatra <bogdan@kdab.com> Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
* Add/extend Class/Model keywords for repcBrett Stottlemyer2017-12-131-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | The Class and Model extensions to QML are very similar in that they come down to additional QObject derived types that need to be made available to the QtRO bus. The original Model behavior only supported c++ templated calls on the source and replica side. This change adds support for nested classes, via an extension to the .rep file format. Similar to how POD types work, if multiple classes are described in a .rep file, a class can include other classes as children. When the `parent` is acquired, all child classes will be acquired as well, automatically. The syntax is `CLASS <name>(<type>), where type needs to be a class defined in the same rep file, and the name is the getter name used to access the sub-QObject. See tests/auto/subclassreplica/class.rep for an example of usage. This change includes supporting the non-templated enableRemoting() call, as well as using/constructing replica types from QML for both Class and Model. Future TODO - update docs Change-Id: Ib1e75c1a6db44497f78026e7f89caab5da94375b Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Say hello to QRemoteObjectNode::heartbeatInterval propertyBogDan Vatra2017-12-081-0/+1
| | | | | | | | | | This property can be used to periodically check the connection between the replica and the source. If the connection is lost, the replica enters in the "Suspect" state and will attempt to reconnect. Task-number: QTBUG-64086 Change-Id: Icf67e173073c9d277575c8faf01a0a1ffab5bc07 Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-11-241-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/remoteobjects/qremoteobjectabstractitemmodeladapter_p.h src/remoteobjects/qremoteobjectdynamicreplica.cpp src/remoteobjects/qremoteobjectnode_p.h src/remoteobjects/qremoteobjectregistry.cpp tests/auto/auto.pro tools/repc/repcodegenerator.cpp Done-with: BogDan Vatra <bogdan@kdab.com> Change-Id: I9d0230736b768eac44b06376aeaab1b0b09eb22a
| * Send and check the protocol versionv5.10.0-beta3BogDan Vatra2017-10-241-0/+1
| | | | | | | | | | | | | | | | [ChangeLog] This is a backwards incompatible change, but is required for future changes to the underlying datastream protocol Change-Id: I7399977b99ede6308ecfa81dbdd2387027b2007b Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* | Rename ReplicaPrivate -> ReplicaImplementationKevin Funk2017-10-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | All those implementations for the QtROReplica ('InProcess', 'Connected', 'RemoteObject') aren't technically d-pointers. Mark them as such by naming them differently. This also has the nice benefit that one does not override QObject's 'd_ptr' variable accidentally with these implementation instances. Needed in order to pimpl QRemoteObjectRegistry properly Change-Id: I88322e37d2ff7e5044980e8fdf9f713d6be80c38 Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* | Prefix abstract class with "Abstract"Kevin Funk2017-10-061-5/+5
| | | | | | | | | | | | | | | | Rename QRemoteObjectPersistedStore to QRemoteObjectAbstractPersistedStore to reflect that this class contains virtual functions Change-Id: I39a721332ace9d5c49afd58cfdf3d083c8e01ff0 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | Turn PersistedStore into a QObjectKevin Funk2017-09-221-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The idea is to make this class usable from within QML. One idea how this could be used inside QML: Node { registryUrl: "local:myUrl" persistedStore: DiskStore { root: "/fs/rwdata/" } // or: InMemoryStore {} // or: SqlStore { database: "myDB" } // or: ... } Note: This patch breaks source and binary compatibility due to the following changes: - enum StorageOwnership - void setPersistedStore(QRemoteObjectPersistedStore *store, StorageOwnership ownership=DoNotPassOwnership); + void setPersistedStore(QRemoteObjectPersistedStore *store); Change-Id: Ib6668fec9d688ecee81be66f53dedc35597baae9 Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* | Modernize: Use override where possibleKevin Funk2017-09-211-4/+4
|/ | | | | Change-Id: Id67366f3eaf251b1f2c8d9a91a41dec72117cc7c Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-061-13/+19
|\ | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I2dacf93b383ca1b8d56caefb8ff9c4e5aa5e4fca
| * Correct QtRO license headers and added missing license filesv5.9.0-beta4Jani Heikkinen2017-05-021-13/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | Unify licensing as it is in other submodules - Src is licensed under Commercial, LGPLv3, GPLv2 and GPLv3 licenses - Examples are licensed under Commercial and BSD licenses - Tools and tests are licensed under commercial and GPLv3 license with some exceptions Task-number: QTBUG-58921 Change-Id: I4494bf8b705568b243340c98316bedd706145db5 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-04-121-2/+2
|\| | | | | | | Change-Id: Icb1840ff398c65335b8b7352af088aeae01f7c1d
| * Replace Q_DECL_OVERRIDE -> overrideKevin Funk2017-03-291-2/+2
| | | | | | | | | | Change-Id: I0ff4b3434a5d4b26bf68b96db28691186813e10d Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* | Convert from QSignalMapper to lambdaKevin Funk2017-03-241-1/+0
|/ | | | | | | | | Since qtbase.git commit 29bcbeab90210da80234529905d17280374f9684, QSignalMapper is deprecated Change-Id: Iedd6aaed8d4a6eaff12298aff4b0c01a781fe1af Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Continuous Integration (KDAB) <build@kdab.com>
* Fixes for license checkBrett Stottlemyer2017-01-141-21/+13
| | | | | | | | Change-Id: I3cf39180b08b80ea65c46e7b6a9e81f3aa79d1af Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix warnings from syncqt.plKevin Funk2016-11-301-0/+11
| | | | | | | | | - Add "we mean it" warning to private headers - Properly include module headers in public headers Change-Id: I3feded431f890fd451c07920edb102ae902a0fb9 Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Allow Replica property values to persistBrett Stottlemyer2016-10-191-0/+2
| | | | | | | | | | | | | | | | Replicas already provide a mechanism to show a default value before the connection to the Source is established. This enhancement allows the .rep PROP definition to include a 'PERSISTED' flag as well, which saves the property value when the Replica is stopped and restores the value when it is started again. Because a shared dll (QtRO) should not know or care where and how values are persisted, a persistence class needs to be set for the owner Node for this feature to work. Change-Id: I5718b024fd268c95d1add2b1be49e6864127782e Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Generate, send and check class signature for .rep generated classesBogDan Vatra2016-09-081-1/+4
| | | | | | | | | If the signature mismatch it will not complete the connection and will signal the error. Change-Id: Idd4a7a5290bb60d7428e16047a1b82db5e52b372 Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* QRemoteObjectNode: Add error signalKevin Funk2016-07-181-0/+2
| | | | | | | | Notifies about changes in the QRemoteObject::lastError property Change-Id: I080d78f3235fea35e6bab0c37aac693ba1cefae2 Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Remove m_ prefix for private class membersKevin Funk2016-07-131-5/+5
| | | | | | | | Consistency++ Change-Id: Id121813f78287ca0c03774986b3f1daf019d08bd Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Continuous Integration (KDAB) <build@kdab.com>
* Introduce QRemoteObjectNode::instancesKevin Funk2016-04-041-1/+7
| | | | | | Change-Id: Idc222afe132083f617fd9b424685a4ed8168974f Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Provide type name for source locationsKevin Funk2016-03-211-1/+1
| | | | | | | | | Extend QRemoteObjectSourceLocation to also carry the type name of the object. Change-Id: Ic50b3682343b92099a5e2f6c564bd10cc543356c Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Refactor to remove extra friend classBrett Stottlemyer2015-12-311-3/+3
| | | | | | | | Also cleans up the logic a bit Change-Id: I0c8b4a5cfd1f3874ecac384f3c5fbb2fa8e35f49 Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Add default constructor for ReplicasBrett Stottlemyer2015-12-311-1/+1
| | | | | | | | | | | | | This requires a code refactor to let the Replica initialize itself, rather than have the Node's acquire() call do the initialization. It also requires adding a 2nd constructor for all Replica types. Change-Id: I2bcad98a6b5a8ac958e8206cd5069f48e230f2d4 Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Provide ReplicaPrivateStubBrett Stottlemyer2015-12-311-1/+1
| | | | | | | | | | | | Before a default Replica constructor can be provided, there needs to be a Replica private type that supports the default functionality (isInitialized, get/set/default properties) but isn't tied to a Node. This change adds said stub private type. Change-Id: I3665586670967edbeeda6e03130e6cfe544f324f Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Kevin Funk <kfunk@kde.org> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Convert Nodes to QObject based class(es)Brett Stottlemyer2015-12-311-15/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change affects lots of lines of code, but is basically a refactoring, not changing much. It does change the QtRO API, though. In the interest of making it easier to expose QtRO types to QML, the move to QObject types for Nodes was necessary. The static generators allowed for different "types" of Nodes to be created with different combinations of 1 or 2 QUrl parameters, but this also forced a Node type that had methods that might not make sense (for instance, enableRemoting() from a Node that wasn't a Host Node). And Nodes needed to be copy-able. This change addresses those issues by creating three distinct types. QRemoteObjectNode is the most basic type, and only supports acquiring Replica objects. QRemoteObjectHost Nodes add the ability to share Source objects on the network. Both Node and Host types support connecting to a Registry. QRemoteObjectRegistryHost Nodes host a Registry object other nodes can connect to. This change requires converting end-user code from the static functions (createHostNode, etc) to using the new types explicitly. Aside from the obvious change from static generator functions, there are two other impacts to user code: 1) connect() was renamed to connectToNode to not conflict with QObject's connect() 2) default QUrls for Hosting and Registry were removed (it was too easy to create name clashes with unexpected results). Change-Id: Ieff62b95e71dac870367ebb90eab83fb59fc063b Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Kevin Funk <kfunk@kde.org> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Use parent to handle ClientIoDevice deleteBrett Stottlemyer2015-12-311-1/+0
| | | | | | | | | | | A previous change added the parent QObject, but we still did manual close()/delete. Change-Id: I8e4e951b6da597dd14a9251c0db206b3ca8acd58 Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Kevin Funk <kfunk@kde.org> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Make connection-factories publicBrett Stottlemyer2015-12-021-1/+0
| | | | | | | | | | | | | | | | | | | | | This is a large change, but it is completely a refactoring of code, not code changes. The connectionfactory classes are now public and describe the connection backends (local and tcp/ip). Instead of putting the client code in a set of files and the server code in a set of files, we have local_backend and tcpip_backend which include both client/server code. The packet type enums were moved to the global header file to make them available to additional backends. Change-Id: I83efc9c1f2013f41f97a4350a31a708f484749e4 Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Allen Winter <allen.winter@kdab.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Make connection factories staticBrett Stottlemyer2015-12-011-1/+0
| | | | | | | | | | | | | Removed qconnectionabstractfactory_p.h and made static versions of the client/server factories. This will make it possible to add more backends without having to re- compile the factory constructors. Change-Id: I5da780cc871c507d5cc67eaeac96817a785355bc Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Fix handling of invalid urlsBrett Stottlemyer2015-11-301-1/+1
| | | | | | | | | | Unhappy paths for invalid urls cleaned up. Change-Id: I8b979f00cc7bd108cf342980201b3a09b5a82763 Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>