~chris.gagnon/+junk/qtpim-coverage

« back to all changes in this revision

Viewing changes to src/organizer/requests/qorganizeritemfetchbyidrequest.cpp

  • Committer: chris.gagnon
  • Date: 2013-12-10 23:09:37 UTC
  • Revision ID: chris.gagnon@canonical.com-20131210230937-2akf1ft1edcttk87
first post

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
 
4
** Contact: http://www.qt-project.org/legal
 
5
**
 
6
** This file is part of the QtOrganizer module of the Qt Toolkit.
 
7
**
 
8
** $QT_BEGIN_LICENSE:LGPL$
 
9
** Commercial License Usage
 
10
** Licensees holding valid commercial Qt licenses may use this file in
 
11
** accordance with the commercial license agreement provided with the
 
12
** Software or, alternatively, in accordance with the terms contained in
 
13
** a written agreement between you and Digia.  For licensing terms and
 
14
** conditions see http://qt.digia.com/licensing.  For further information
 
15
** use the contact form at http://qt.digia.com/contact-us.
 
16
**
 
17
** GNU Lesser General Public License Usage
 
18
** Alternatively, this file may be used under the terms of the GNU Lesser
 
19
** General Public License version 2.1 as published by the Free Software
 
20
** Foundation and appearing in the file LICENSE.LGPL included in the
 
21
** packaging of this file.  Please review the following information to
 
22
** ensure the GNU Lesser General Public License version 2.1 requirements
 
23
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 
24
**
 
25
** In addition, as a special exception, Digia gives you certain additional
 
26
** rights.  These rights are described in the Digia Qt LGPL Exception
 
27
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 
28
**
 
29
** GNU General Public License Usage
 
30
** Alternatively, this file may be used under the terms of the GNU
 
31
** General Public License version 3.0 as published by the Free Software
 
32
** Foundation and appearing in the file LICENSE.GPL included in the
 
33
** packaging of this file.  Please review the following information to
 
34
** ensure the GNU General Public License version 3.0 requirements will be
 
35
** met: http://www.gnu.org/copyleft/gpl.html.
 
36
**
 
37
**
 
38
** $QT_END_LICENSE$
 
39
**
 
40
****************************************************************************/
 
41
 
 
42
#include <qorganizeritemfetchbyidrequest.h>
 
43
#include <private/qorganizeritemrequests_p.h>
 
44
 
 
45
QT_BEGIN_NAMESPACE_ORGANIZER
 
46
 
 
47
/*!
 
48
    \class QOrganizerItemFetchByIdRequest
 
49
    \brief The QOrganizerItemFetchByIdRequest class allows a client to asynchronously
 
50
           fetch items from a backend, given a list of item IDs.
 
51
    \inmodule QtOrganizer
 
52
    \ingroup organizer-requests
 
53
 
 
54
    The items fetched by the backend should have a one-to-one correspondence to the IDs passed into
 
55
    this class.  That is, the nth item in the returned list should have an ID which is equal to the
 
56
    nth ID in the list of IDs.  Any invalid ID should correspond to an empty QOrganizerItem.
 
57
 */
 
58
 
 
59
/*!
 
60
    Constructs a new item fetch by ID request whose parent is the specified \a parent.
 
61
*/
 
62
QOrganizerItemFetchByIdRequest::QOrganizerItemFetchByIdRequest(QObject *parent)
 
63
    : QOrganizerAbstractRequest(new QOrganizerItemFetchByIdRequestPrivate, parent)
 
64
{
 
65
}
 
66
 
 
67
/*!
 
68
    Frees any memory used by this request.
 
69
*/
 
70
QOrganizerItemFetchByIdRequest::~QOrganizerItemFetchByIdRequest()
 
71
{
 
72
    QOrganizerAbstractRequestPrivate::notifyEngine(this);
 
73
}
 
74
 
 
75
/*!
 
76
    Sets the list of IDs of the items that the backend should retrieve to \a ids.
 
77
 */
 
78
void QOrganizerItemFetchByIdRequest::setIds(const QList<QOrganizerItemId> &ids)
 
79
{
 
80
    Q_D(QOrganizerItemFetchByIdRequest);
 
81
    QMutexLocker ml(&d->m_mutex);
 
82
    d->m_ids = ids;
 
83
}
 
84
 
 
85
/*!
 
86
    Sets the fetch hint which may be used by the backend to optimize item retrieval to \a fetchHint.
 
87
 
 
88
    A client should not make changes to a item which has been retrieved using a fetch hint other than
 
89
    the default fetch hint.  Doing so will result in information loss when saving the item back to
 
90
    the manager (as the "new" restricted item will replace the previously saved item in the backend).
 
91
 */
 
92
void QOrganizerItemFetchByIdRequest::setFetchHint(const QOrganizerItemFetchHint &fetchHint)
 
93
{
 
94
    Q_D(QOrganizerItemFetchByIdRequest);
 
95
    QMutexLocker ml(&d->m_mutex);
 
96
    d->m_fetchHint = fetchHint;
 
97
}
 
98
 
 
99
/*!
 
100
    Returns the list of IDs of the items that the backend should retrieve.
 
101
 */
 
102
QList<QOrganizerItemId> QOrganizerItemFetchByIdRequest::ids() const
 
103
{
 
104
    Q_D(const QOrganizerItemFetchByIdRequest);
 
105
    QMutexLocker ml(&d->m_mutex);
 
106
    return d->m_ids;
 
107
}
 
108
 
 
109
/*!
 
110
    Returns the fetch hint which may be used by the backend to optimize item retrieval.
 
111
 
 
112
    A client should not make changes to a item which has been retrieved using a fetch hint other than
 
113
    the default fetch hint.  Doing so will result in information loss when saving the item back to
 
114
    the manager (as the "new" restricted item will replace the previously saved item in the backend).
 
115
 */
 
116
QOrganizerItemFetchHint QOrganizerItemFetchByIdRequest::fetchHint() const
 
117
{
 
118
    Q_D(const QOrganizerItemFetchByIdRequest);
 
119
    QMutexLocker ml(&d->m_mutex);
 
120
    return d->m_fetchHint;
 
121
}
 
122
 
 
123
/*!
 
124
    Returns the list of items retrieved by this request.
 
125
*/
 
126
QList<QOrganizerItem> QOrganizerItemFetchByIdRequest::items() const
 
127
{
 
128
    Q_D(const QOrganizerItemFetchByIdRequest);
 
129
    QMutexLocker ml(&d->m_mutex);
 
130
    return d->m_items;
 
131
}
 
132
 
 
133
/*!
 
134
    Returns the map of input definition list indices to errors which occurred.
 
135
*/
 
136
QMap<int, QOrganizerManager::Error> QOrganizerItemFetchByIdRequest::errorMap() const
 
137
{
 
138
    Q_D(const QOrganizerItemFetchByIdRequest);
 
139
    QMutexLocker ml(&d->m_mutex);
 
140
    return d->m_errors;
 
141
}
 
142
 
 
143
#include "moc_qorganizeritemfetchbyidrequest.cpp"
 
144
 
 
145
QT_END_NAMESPACE_ORGANIZER