~ubuntu-branches/ubuntu/vivid/libusermetrics/vivid

« back to all changes in this revision

Viewing changes to src/libusermetricsinput/MetricImpl.cpp

  • Committer: Package Import Robot
  • Author(s): Ubuntu daily release, Pete Woods, Ubuntu daily release
  • Date: 2013-10-02 02:10:48 UTC
  • mfrom: (1.1.19)
  • Revision ID: package-import@ubuntu.com-20131002021048-9a2817y13xze516i
Tags: 1.1.1+13.10.20131002-0ubuntu1
[ Pete Woods ]
* Prevent apps and users from modifying data they shouldn't be able to
  modify.
* Handle exceptions in the QML API.
* Support reading colors from gconf.
* Ignore leak in QXmlPatterns on i386 (must be fixed at source)
* Add wildcards to suppress reported leak in Qt. (LP: #1233003)
* Repond to security team's review.

[ Ubuntu daily release ]
* Automatic snapshot from revision 139

Show diffs side-by-side

added added

removed removed

Lines of Context:
53
53
                username = usernameIn;
54
54
        }
55
55
 
56
 
        QDBusObjectPath userDataPath(m_userMetrics.createUserData(username));
 
56
        QDBusPendingReply<QDBusObjectPath> userDataReply(
 
57
                        m_userMetrics.createUserData(username));
 
58
 
 
59
        userDataReply.waitForFinished();
 
60
        if (userDataReply.isError()) {
 
61
                throw logic_error(userDataReply.error().message().toStdString());
 
62
        }
 
63
 
 
64
        QDBusObjectPath userDataPath(userDataReply);
57
65
 
58
66
        com::canonical::usermetrics::UserData userDataInterface(
59
67
                        DBusPaths::serviceName(), userDataPath.path(), m_dbusConnection);
61
69
                throw logic_error("user data interface invalid");
62
70
        }
63
71
 
64
 
        return userDataInterface.createDataSet(m_dataSourceId);
 
72
        QDBusPendingReply<QDBusObjectPath> dataSetReply(
 
73
                        userDataInterface.createDataSet(m_dataSourceId));
 
74
 
 
75
        dataSetReply.waitForFinished();
 
76
        if (dataSetReply.isError()) {
 
77
                throw logic_error(dataSetReply.error().message().toStdString());
 
78
        }
 
79
 
 
80
        return dataSetReply;
65
81
}
66
82
 
67
83
MetricUpdate * MetricImpl::update(const QString &username) {
76
92
        com::canonical::usermetrics::DataSet dataSetInterface(
77
93
                        DBusPaths::serviceName(), dataSetPath.path(), m_dbusConnection);
78
94
 
79
 
        dataSetInterface.update(QVariantList() << value);
 
95
        QDBusPendingReply<> reply(dataSetInterface.update(QVariantList() << value));
 
96
 
 
97
        reply.waitForFinished();
 
98
        if (reply.isError()) {
 
99
                throw logic_error(reply.error().message().toStdString());
 
100
        }
80
101
}
81
102
 
82
103
void MetricImpl::increment(double amount, const QString &username) {
85
106
        com::canonical::usermetrics::DataSet dataSetInterface(
86
107
                        DBusPaths::serviceName(), dataSetPath.path(), m_dbusConnection);
87
108
 
88
 
        dataSetInterface.increment(amount);
 
109
        QDBusPendingReply<> reply(dataSetInterface.increment(amount));
 
110
 
 
111
        reply.waitForFinished();
 
112
        if (reply.isError()) {
 
113
                throw logic_error(reply.error().message().toStdString());
 
114
        }
89
115
}