QDBusArgumentPrivate: Disable copy and move, make constructor protected

Disable copy and move for the class because it is polymorphic.

Make the constructor protected because instances of this
class are not supposed to be created directly.

Mark drived classes final.

Change-Id: Ia6f2d640f3642ad4a6ecb3830fba152155e237b3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
bb10
Ievgenii Meshcheriakov 2023-09-13 12:19:01 +02:00
parent 37af09adf0
commit e49d8444dc
1 changed files with 10 additions and 7 deletions

View File

@ -34,14 +34,10 @@ class QDBusMarshaller;
class QDBusDemarshaller;
class QDBusArgumentPrivate
{
Q_DISABLE_COPY_MOVE(QDBusArgumentPrivate)
public:
enum class Direction { Marshalling, Demarshalling };
explicit QDBusArgumentPrivate(Direction direction,
QDBusConnection::ConnectionCapabilities flags = {})
: capabilities(flags), direction(direction)
{
}
virtual ~QDBusArgumentPrivate();
static bool checkRead(QDBusArgumentPrivate *d);
@ -64,9 +60,16 @@ public:
QAtomicInt ref = 1;
QDBusConnection::ConnectionCapabilities capabilities;
Direction direction;
protected:
explicit QDBusArgumentPrivate(Direction direction,
QDBusConnection::ConnectionCapabilities flags = {})
: capabilities(flags), direction(direction)
{
}
};
class QDBusMarshaller: public QDBusArgumentPrivate
class QDBusMarshaller final : public QDBusArgumentPrivate
{
public:
explicit QDBusMarshaller(QDBusConnection::ConnectionCapabilities flags = {})
@ -125,7 +128,7 @@ private:
Q_DISABLE_COPY_MOVE(QDBusMarshaller)
};
class QDBusDemarshaller: public QDBusArgumentPrivate
class QDBusDemarshaller final : public QDBusArgumentPrivate
{
public:
explicit QDBusDemarshaller(QDBusConnection::ConnectionCapabilities flags = {})