Logo Search packages:      
Sourcecode: kmess version File versions  Download package

ssdpconnection.h

/***************************************************************************
                          ssdpconnection.h -  description
                             -------------------
    begin                : Fri Jul 29 2005
    copyright            : (C) 2005 by Diederik van der Boor
    email                : vdboor --at-- codingdomain.com
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef UPNP_SSDPCONNECTION_H
#define UPNP_SSDPCONNECTION_H

#include <qobject.h>

class QSocketDevice;
class QSocketNotifier;

namespace UPnP
{


/**
 * The Simple Service Discovery Protocol allows UPnP clients
 * to discover UPnP devices on a network.
 * This is achieved by broadcasting a HTTP-like message over UDP.
 * Devices can respond with their location and root service name.
 * The RootService class uses this information to query the device for
 * it's meta information and service list.
 *
 * @author Diederik van der Boor
 * @ingroup NetworkUPnP
 */
00041 class SsdpConnection : public QObject
{
  Q_OBJECT

  public:  // public methods
    // The constructor for action services
                         SsdpConnection();
    // The destructor
    virtual             ~SsdpConnection();

    // Send a broadcast to detect all devices
    void                 queryDevices(int bindPort = 1500);

  private slots:
    // Data was received by the socket
    void                 slotDataReceived();


  private:
    QSocketDevice       *socket_;
    QSocketNotifier     *notifier_;

  signals:
    // Called when a query completed
    void                 deviceFound(const QString &hostname, int port, const QString &rootUrl);
};

}

#endif

Generated by  Doxygen 1.6.0   Back to index