blob: 064df0df388e35dba07742adca31c5f47de214d3 [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the QtDBus module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include "qdbusserver.h"
#include "qdbusconnection_p.h"
#ifndef QT_NO_DBUS
QT_BEGIN_NAMESPACE
/*!
\class QDBusServer
\inmodule QtDBus
\internal
\brief The QDBusServer class provides peer-to-peer communication
between processes on the same computer.
*/
/*!
Constructs a QDBusServer with the given \a address, and the given
\a parent.
*/
QDBusServer::QDBusServer(const QString &address, QObject *parent)
: QObject(parent)
{
if (!qdbus_loadLibDBus()) {
d = 0;
return;
}
d = new QDBusConnectionPrivate(this);
if (address.isEmpty())
return;
QObject::connect(d, SIGNAL(newServerConnection(QDBusConnection)),
this, SIGNAL(newConnection(QDBusConnection)));
// server = q_dbus_server_listen( "unix:tmpdir=/tmp", &error);
QDBusErrorInternal error;
d->setServer(q_dbus_server_listen(address.toUtf8().constData(), error), error);
}
/*!
Returns true if this QDBusServer object is connected.
If it isn't connected, you need to call the constructor again.
*/
bool QDBusServer::isConnected() const
{
return d && d->server && q_dbus_server_get_is_connected(d->server);
}
/*!
Returns the last error that happened in this server.
This function is provided for low-level code.
*/
QDBusError QDBusServer::lastError() const
{
return d->lastError;
}
/*!
Returns the address this server is associated with.
*/
QString QDBusServer::address() const
{
QString addr;
if (d && d->server) {
char *c = q_dbus_server_get_address(d->server);
addr = QString::fromUtf8(c);
q_dbus_free(c);
}
return addr;
}
/*!
\fn void QDBusServer::newConnection(const QDBusConnection &connection)
This signal is currently not used, but if and when it is
used, \a connection will be the new connection.
*/
QT_END_NAMESPACE
#endif // QT_NO_DBUS