Ignore:
Timestamp:
Feb 11, 2010, 11:19:06 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.1 sources.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/dbus/qdbuspendingcall.cpp

    r2 r561  
    22**
    33** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
    4 ** Contact: Qt Software Information (qt-info@nokia.com)
     4** All rights reserved.
     5** Contact: Nokia Corporation (qt-info@nokia.com)
    56**
    67** This file is part of the QtDBus module of the Qt Toolkit.
     
    2122** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
    2223**
    23 ** In addition, as a special exception, Nokia gives you certain
    24 ** additional rights. These rights are described in the Nokia Qt LGPL
    25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
    26 ** package.
     24** In addition, as a special exception, Nokia gives you certain additional
     25** rights.  These rights are described in the Nokia Qt LGPL Exception
     26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
    2727**
    2828** GNU General Public License Usage
     
    3434** met: http://www.gnu.org/copyleft/gpl.html.
    3535**
    36 ** If you are unsure which license is appropriate for your use, please
    37 ** contact the sales department at qt-sales@nokia.com.
     36** If you have questions regarding the use of this file, please contact
     37** Nokia at qt-info@nokia.com.
    3838** $QT_END_LICENSE$
    3939**
     
    311311bool QDBusPendingCall::isFinished() const
    312312{
    313     return d && (d->replyMessage.type() != QDBusMessage::InvalidMessage);
     313    return !d || (d->replyMessage.type() != QDBusMessage::InvalidMessage);
    314314}
    315315
     
    410410#endif
    411411
     412/*!
     413    \since 4.6
     414    Creates a QDBusPendingCall object based on the error condition
     415    \a error. The resulting pending call object will be in the
     416    "finished" state and QDBusPendingReply::isError() will return true.
     417
     418    \sa fromCompletedCall()
     419*/
     420QDBusPendingCall QDBusPendingCall::fromError(const QDBusError &error)
     421{
     422    return fromCompletedCall(QDBusMessage::createError(error));
     423}
     424
     425/*!
     426    \since 4.6
     427    Creates a QDBusPendingCall object based on the message \a msg.
     428    The message must be of type QDBusMessage::ErrorMessage or
     429    QDBusMessage::ReplyMessage (that is, a message that is typical
     430    of a completed call).
     431
     432    This function is useful for code that requires simulating a pending
     433    call, but that has already finished.
     434
     435    \sa fromError()
     436*/
     437QDBusPendingCall QDBusPendingCall::fromCompletedCall(const QDBusMessage &msg)
     438{
     439    QDBusPendingCallPrivate *d = 0;
     440    if (msg.type() == QDBusMessage::ErrorMessage ||
     441        msg.type() == QDBusMessage::ReplyMessage) {
     442        d = new QDBusPendingCallPrivate;
     443        d->replyMessage = msg;
     444        d->connection = 0;
     445    }
     446
     447    return QDBusPendingCall(d);
     448}
     449
    412450
    413451class QDBusPendingCallWatcherPrivate: public QObjectPrivate
     
    433471    : QObject(*new QDBusPendingCallWatcherPrivate, parent), QDBusPendingCall(call)
    434472{
    435     if (d) {
    436         if (!d->watcherHelper)
     473    if (d) {                    // QDBusPendingCall::d
     474        if (!d->watcherHelper) {
    437475            d->watcherHelper = new QDBusPendingCallWatcherHelper;
     476            if (isFinished()) {
     477                // cause a signal emission anyways
     478                QMetaObject::invokeMethod(d->watcherHelper, "finished", Qt::QueuedConnection);
     479            }
     480        }
    438481        d->watcherHelper->add(this);
    439482    }
     
    465508
    466509        // our signals were queued, so deliver them
     510        QCoreApplication::sendPostedEvents(d->watcherHelper, QEvent::MetaCall);
    467511        QCoreApplication::sendPostedEvents(this, QEvent::MetaCall);
    468512    }
Note: See TracChangeset for help on using the changeset viewer.