aboutsummaryrefslogtreecommitdiffstats
path: root/src/ivicore/qivipropertyfactory.cpp
blob: 72f320a23fb5109d7274e20466748d25e121f262 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/****************************************************************************
**
** Copyright (C) 2018 Pelagicore AG
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtIvi module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL-QTAS$
** Commercial License Usage
** Licensees holding valid commercial Qt Automotive Suite licenses may use
** this file in accordance with the commercial license agreement provided
** with the Software or, alternatively, in accordance with the terms
** contained in a written agreement between you and The Qt Company.  For
** licensing terms and conditions see https://www.qt.io/terms-conditions.
** For further information use the contact form at https://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL3 included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or (at your option) the GNU General
** Public license version 3 or any later version approved by the KDE Free
** Qt Foundation. The licenses are as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
** https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
** SPDX-License-Identifier: LGPL-3.0
**
****************************************************************************/

#include "qivipropertyfactory.h"

QT_BEGIN_NAMESPACE

/*!
    \class QIviPropertyFactory
    \obsolete
    \inmodule QtIviCore
    \brief The QIviPropertyFactory is used as a factory class for creating instances of QIviProperty

    QIviPropertyFactory will preserve the type information about the template type in QIviProperty and
    does a compile time check whether all provided functions and signals match this type and each other.

    The following code creates a property of type int:
    \code
    QIviPropertyFactory<int>::create(this,
                                     &QIviClimateControl::targetTemperatureAttribute,
                                     &QIviClimateControl::targetTemperatureAttributeChanged,
                                     &QIviClimateControl::targetTemperature,
                                     &QIviClimateControl::targetTemperatureChanged,
                                     &QIviClimateControl::setTargetTemperature)
    \endcode

    This Factory provides two functions, one for creating a read-write property and one for a read-only property.
*/

/*!
    \fn template <class T, typename attributeGetterFunc, typename attributeSignalFunc, typename valueGetterFunc, typename valueSignalFunc, typename valueSlotFunc> QIviPropertyFactory<T>::create(const typename QtPrivate::FunctionPointer<attributeGetterFunc>::Object *sender, attributeGetterFunc attributeGetter, attributeSignalFunc attributeSignal, valueGetterFunc valueGetter, valueSignalFunc valueSignal, valueSlotFunc valueSlot)

    Returns an new QIviProperty instance for a attribute and value of type T.

    The \a sender argument needs to be a pointer to the QObject* instance which implements all functions and signals provided next.
    The arguments \a attributeGetter and \a attributeSignal need to be functions pointers to your attribute getter function and the attribute signal function.
    These arguments need to be of QIviPropertyAttribute<T>.
    \a valueGetter, \a valueSignal, and \a valueSlot need to be function pointers to the getter, signal, and setter for the value that should be stored in this QIviQmlProperty instance.
    The value functions need to have arguments and return values of type T.
*/

/*!
    \fn template <class T, typename attributeGetterFunc, typename attributeSignalFunc, typename valueGetterFunc, typename valueSignalFunc>  QIviPropertyFactory<T>::create(const typename QtPrivate::FunctionPointer<attributeGetterFunc>::Object *sender, attributeGetterFunc attributeGetter, attributeSignalFunc attributeSignal, valueGetterFunc valueGetter, valueSignalFunc valueSignal)

    Returns a new QIviProperty instance for an attribute and value of type T.

    The \a sender argument needs to be a pointer to the QObject* instance which implements all functions and signals provided next.
    The arguments \a attributeGetter and \a attributeSignal need to be functions pointers to your attribute getter function and the attribute signal function.
    These arguments need to be of QIviPropertyAttribute<T>.
    \a valueGetter, \a valueSignal need to be function pointers to the getter and signal for the value which should be stored in this QIviQmlProperty instance.
    The value functions need to have arguments and return values of type T.

    \note This factory function will create a readonly property as no value setter needs to be provided
*/

/*!
    \fn template <class T> bool QIviPropertyFactory<T>::isAvailable() const

    \reimp
*/

/*!
    \fn template <class T> bool QIviPropertyFactory<T>::minimumValue() const

    \reimp
*/

/*!
    \fn template <class T> bool QIviPropertyFactory<T>::maximumValue() const

    \reimp
*/

/*!
    \fn template <class T> bool QIviPropertyFactory<T>::availableValues() const

    \reimp
*/

/*!
    \fn template <class T> bool QIviPropertyFactory<T>::value() const

    \reimp
*/

QT_END_NAMESPACE