Diffstat (limited to 'library/qcopenvelope_qws.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | library/qcopenvelope_qws.cpp | 51 |
1 files changed, 31 insertions, 20 deletions
diff --git a/library/qcopenvelope_qws.cpp b/library/qcopenvelope_qws.cpp index 10d1567..81bb0f5 100644 --- a/library/qcopenvelope_qws.cpp +++ b/library/qcopenvelope_qws.cpp @@ -1,6 +1,6 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the @@ -19,5 +19,7 @@ **********************************************************************/ +#ifndef QT_NO_COP #include "qcopenvelope_qws.h" +#endif #include "global.h" #include <qbuffer.h> @@ -35,8 +37,9 @@ /*! \class QCopEnvelope qcopenvelope_qws.h - \brief The QCopEnvelope class encapsulates QCop message sending. + \brief The QCopEnvelope class encapsulates and sends QCop messages + over QCopChannels. QCop messages allow applications to communicate with each other. - These messages are send using QCopEnvelope, and received by connecting + These messages are sent using QCopEnvelope, and received by connecting to a QCopChannel. @@ -48,21 +51,21 @@ \endcode - For messages without parameters, you can simply use: + For messages without parameters, simply use: \code - QCopEnvelope (channelname, messagename); + QCopEnvelope e(channelname, messagename); \endcode - Do not try to simplify further as some compilers may not do - as you expect. + (Do not try to simplify this further as it may confuse some + compilers.) - The <tt>channelname</tt> of channels within Qtopia all start with "QPE/". - The <tt>messagename</tt> is a function identifier followed by a list of types - in parentheses. There are no spaces in the message name. + The \c{channelname} of channels within Qtopia all start with "QPE/". + The \c{messagename} is a function identifier followed by a list of types + in parentheses. There is no whitespace in the message name. - To receive a message, you will generally just use your applications - predefined QPE/Application/<i>appname</i> channel + To receive a message, you will generally just use your application's + predefined QPE/Application/\e{appname} channel (see QPEApplication::appMessage()), but you can make another channel - and connect it to a slot with: + and connect it to a slot like this: \code @@ -77,6 +80,6 @@ /*! Constructs a QCopEnvelope that will write \a message to \a channel. - If \a message has parameters, you must then user operator<<() to - write the parameters. + If \a message has parameters, you must then use operator<<() to + add these parameters to the envelope. */ QCopEnvelope::QCopEnvelope( const QCString& channel, const QCString& message ) : @@ -88,5 +91,5 @@ QCopEnvelope::QCopEnvelope( const QCString& channel, const QCString& message ) : /*! - Writes the completed message and destroys the QCopEnvelope. + Writes the message and then destroys the QCopEnvelope. */ QCopEnvelope::~QCopEnvelope() @@ -112,5 +115,5 @@ QCopEnvelope::~QCopEnvelope() if (!fstat(qcopfile.handle(), &buf) && (time(&t) != (time_t)-1) ) { // success on fstat, lets compare times - if (buf.st_mtime + 60 < t) { + if (buf.st_ctime + 60 < t) { qWarning("stale file " + qcopfn + " found. Truncating"); ftruncate(qcopfile.handle(), 0); @@ -130,6 +133,5 @@ QCopEnvelope::~QCopEnvelope() if (fsize == 0) { QString cmd = ch.mid(pref); - cmd += " -qcop " + qcopfn; - Global::invoke(cmd); + Global::execute(cmd); } @@ -155,4 +157,13 @@ QCopEnvelope::~QCopEnvelope() } // endif open } + else if (qstrncmp(ch.data(), "QPE/SOAP/", 9) == 0) { + // If this is a message that should go along the SOAP channel, we move the + // endpoint URL to the data section. + QString endpoint = ch.mid(9); + + ch = "QPE/SOAP"; + // Since byte arrays are explicitly shared, this is appended to the data variable.. + *this << endpoint; + } QCopChannel::send(ch,msg,data); end: |