| Server IP : 182.53.201.61 / Your IP : 216.73.217.175 Web Server : Apache/2.2.15 (Fedora) System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 User : apache ( 48) PHP Version : 5.3.3 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/include/dbus-cxx-0.4/dbus-cxx/ |
Upload File : |
/***************************************************************************
* Copyright (C) 2007,2008,2009 by Rick L. Vinyard, Jr. *
* rvinyard@cs.nmsu.edu *
* *
* This file is part of the dbus-cxx library. *
* *
* The dbus-cxx library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* version 3 as published by the Free Software Foundation. *
* *
* The dbus-cxx library is distributed in the hope that it will be *
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty *
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this software. If not see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef __DBUSXX_PENDING_CALL_H
#define __DBUSXX_PENDING_CALL_H
#include <dbus/dbus.h>
#include <sigc++/sigc++.h>
#include <dbus-cxx/message.h>
#include <dbus-cxx/pointer.h>
namespace DBus
{
/**
* Monitors an asynchronous call, emitting a signal when a response is received
*
* @ingroup message
*
* @author Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
*/
class PendingCall: public sigc::trackable
{
protected:
PendingCall( DBusPendingCall* cobj = NULL );
PendingCall( const PendingCall& );
public:
typedef DBusCxxPointer<PendingCall> pointer;
static pointer create( DBusPendingCall* cobj = NULL );
static pointer create( const PendingCall& );
virtual ~PendingCall();
PendingCall& operator=( const PendingCall& other );
void cancel();
bool completed();
Message::pointer steal_reply();
void block();
sigc::signal<void> signal_notify();
DBusPendingCall* cobj();
private:
DBusPendingCall* m_cobj;
sigc::signal<void> m_signal_notify;
static void notify_callback( DBusPendingCall* pending, void* data );
};
}
#endif