netwerk/system/qt/nsQtNetworkManager.h
author Nicholas Nethercote <nnethercote@mozilla.com>
Thu, 16 Oct 2014 19:06:45 -0700
changeset 238475 94c5d968e7e802a423c2634ed15bea2dcff2d6ef
parent 129427 ed46fb258e5394e0d90ee569d2102a9e45906f73
permissions -rw-r--r--
Bug 1014343 - Add diff support to dmd.py. r=mccr8.

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef NSQTNETWORKMANAGER_H_
#define NSQTNETWORKMANAGER_H_

#include <QNetworkConfigurationManager>
#include <QObject>
#include <QTimer>
#include <QNetworkConfiguration>
#include <QNetworkSession>
#include "nscore.h"

class nsQtNetworkManager;



class nsQtNetworkManager : public QObject
{
  Q_OBJECT
  public:
    static void create();
    static void destroy();
    virtual ~nsQtNetworkManager();

    static nsQtNetworkManager* get() { return gQtNetworkManager; }

    static bool IsConnected();
    static bool GetLinkStatusKnown();
    static void enableInstance();
    bool openConnection(const QString&);
    bool isOnline();
  Q_SIGNALS:
    void openConnectionSignal();

  public Q_SLOTS:
    void closeSession();
    void onlineStateChanged(bool);

  private Q_SLOTS:
    void openSession();

  private:
    explicit nsQtNetworkManager(QObject* parent = 0);

    static nsQtNetworkManager* gQtNetworkManager;
    QNetworkSession* networkSession;
    QNetworkConfiguration networkConfiguration;
    QNetworkConfigurationManager networkConfigurationManager;
    QTimer mBlockTimer;
    bool mOnline;
};

#endif /* NSQTNETWORKMANAGER_H_ */