Add network manager global object to kinstance

This breaks the ABI
pull/16/head
Timothy Pearson 12 years ago
parent cfbdd55bb3
commit 2a415e33e0

@ -35,6 +35,7 @@
#include <kcharsets.h>
#include <kiconloader.h>
#include <tdehardwaredevices.h>
#include <tdenetworkconnections.h>
#include <kstandarddirs.h>
#include <kinstance.h>
#include "kstaticdeleter.h"
@ -87,6 +88,13 @@ TDEHardwareDevices *KGlobal::hardwareDevices()
return _instance->hardwareDevices();
}
TDEGlobalNetworkManager *KGlobal::networkManager()
{
MYASSERT(_instance);
return _instance->networkManager();
}
KInstance *KGlobal::instance()
{
MYASSERT(_instance);

@ -26,6 +26,7 @@ class KConfig;
class KSharedConfig;
class KIconLoader;
class TDEHardwareDevices;
class TDEGlobalNetworkManager;
class KLocale;
class KStandardDirs;
class KStaticDeleterBase;
@ -79,11 +80,17 @@ public:
static KIconLoader *iconLoader();
/**
* Returns a hardwaredevices object.
* @return the global hardwaredevices object
* Returns a TDEHardwareDevices object.
* @return the global hardware devices object
*/
static TDEHardwareDevices *hardwareDevices();
/**
* Returns a TDEGlobalNetworkManager object.
* @return the global network manager object
*/
static TDEGlobalNetworkManager *networkManager();
/**
* Returns the global locale object.
* @return the global locale object

@ -25,6 +25,7 @@
#include "kcharsets.h"
#include "kiconloader.h"
#include "tdehardwaredevices.h"
#include "tdenetworkconnections.h"
#include "kaboutdata.h"
#include "kstandarddirs.h"
#include "kdebug.h"
@ -72,6 +73,7 @@ KInstance::KInstance( const TQCString& name)
_config (0L),
_iconLoader (0L),
_hardwaredevices (0L),
_networkmanager (0L),
_name( name ), _aboutData( new KAboutData( name, "", 0 ) ), m_configReadOnly(false)
{
DEBUG_ADD
@ -91,6 +93,7 @@ KInstance::KInstance( const KAboutData * aboutData )
_config (0L),
_iconLoader (0L),
_hardwaredevices (0L),
_networkmanager (0L),
_name( aboutData->appName() ), _aboutData( aboutData ), m_configReadOnly(false)
{
DEBUG_ADD
@ -111,6 +114,7 @@ KInstance::KInstance( KInstance* src )
_config ( src->_config ),
_iconLoader ( src->_iconLoader ),
_hardwaredevices ( src->_hardwaredevices ),
_networkmanager ( src->_networkmanager ),
_name( src->_name ), _aboutData( src->_aboutData ), m_configReadOnly(false)
{
DEBUG_ADD
@ -130,6 +134,7 @@ KInstance::KInstance( KInstance* src )
src->_config = 0L;
src->_iconLoader = 0L;
src->_hardwaredevices = 0L;
src->_networkmanager = 0L;
src->_aboutData = 0L;
delete src;
}
@ -151,6 +156,9 @@ KInstance::~KInstance()
delete _hardwaredevices;
_hardwaredevices = 0;
delete _networkmanager;
_networkmanager = 0;
// delete _config; // Do not delete, stored in d->sharedConfig
_config = 0;
delete _dirs;
@ -272,6 +280,16 @@ TDEHardwareDevices *KInstance::hardwareDevices() const
return _hardwaredevices;
}
TDEGlobalNetworkManager *KInstance::networkManager() const
{
DEBUG_CHECK_ALIVE
if( _networkmanager == 0 ) {
_networkmanager = new TDEGlobalNetworkManager( );
}
return _networkmanager;
}
void KInstance::newIconLoader() const
{
DEBUG_CHECK_ALIVE

@ -28,6 +28,7 @@ class KInstancePrivate;
class KMimeSourceFactory;
class KSharedConfig;
class TDEHardwareDevices;
class TDEGlobalNetworkManager;
#include <tqstring.h>
#include "tdelibs_export.h"
@ -110,11 +111,17 @@ class TDECORE_EXPORT KInstance
KIconLoader *iconLoader() const;
/**
* Returns a hardwaredevices object.
* Returns a TDEHardwareDevices object.
* @return the hardwaredevices object.
*/
TDEHardwareDevices *hardwareDevices() const;
/**
* Returns a TDEGlobalNetworkManager object.
* @return the networkmanager object.
*/
TDEGlobalNetworkManager *networkManager() const;
/**
* Re-allocate the global iconloader.
*/
@ -162,6 +169,8 @@ private:
mutable KIconLoader *_iconLoader;
mutable TDEHardwareDevices *_hardwaredevices;
mutable TDEGlobalNetworkManager *_networkmanager;
mutable void *_placeholder;
TQCString _name;
const KAboutData *_aboutData;

@ -19,6 +19,12 @@
#include "tdehardwaredevices.h"
#include "tdenetworkconnections.h"
#include "config.h"
#ifdef WITH_NETWORK_MANAGER_BACKEND
#include "networkbackends/network-manager/network-manager.h"
#endif // WITH_NETWORK_MANAGER_BACKEND
#define SET_BIT(x, y) (x |= 1 << y)
#define TEST_BIT(x, y) ((x & (1 << y)) >> y)
@ -465,6 +471,96 @@ void TDENetworkConnectionManager::internalNetworkDeviceStateChanged(TDENetworkCo
m_prevDeviceStatus[hwAddress] = newState;
}
/*================================================================================================*/
/* TDEGlobalNetworkManager */
/*================================================================================================*/
TDEGlobalNetworkManager::TDEGlobalNetworkManager() : m_internalConnectionManager(NULL) {
#ifdef WITH_NETWORK_MANAGER_BACKEND
m_internalConnectionManager = new TDENetworkConnectionManager_BackendNM(TQString::null);
#endif // WITH_NETWORK_MANAGER_BACKEND
connect(m_internalConnectionManager, SIGNAL(networkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags, TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags)), this, SIGNAL(networkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags, TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags)));
}
TDEGlobalNetworkManager::~TDEGlobalNetworkManager() {
delete m_internalConnectionManager;
}
TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags TDEGlobalNetworkManager::backendStatus() {
if (!m_internalConnectionManager) return TDENetworkGlobalManagerFlags::Unknown;
return m_internalConnectionManager->backendStatus();
}
void TDEGlobalNetworkManager::loadConnectionInformation() {
if (!m_internalConnectionManager) return;
return m_internalConnectionManager->loadConnectionInformation();
}
bool TDEGlobalNetworkManager::loadConnectionSecrets(TQString uuid) {
if (!m_internalConnectionManager) return false;
return m_internalConnectionManager->loadConnectionSecrets(uuid);
}
bool TDEGlobalNetworkManager::saveConnection(TDENetworkConnection* connection) {
if (!m_internalConnectionManager) return false;
return m_internalConnectionManager->saveConnection(connection);
}
bool TDEGlobalNetworkManager::deleteConnection(TQString uuid) {
if (!m_internalConnectionManager) return false;
return m_internalConnectionManager->deleteConnection(uuid);
}
TDENetworkConnectionStatus::TDENetworkConnectionStatus TDEGlobalNetworkManager::initiateConnection(TQString uuid) {
if (!m_internalConnectionManager) return TDENetworkConnectionStatus::Invalid;
return m_internalConnectionManager->initiateConnection(uuid);
}
TDENetworkConnectionStatus::TDENetworkConnectionStatus TDEGlobalNetworkManager::checkConnectionStatus(TQString uuid) {
if (!m_internalConnectionManager) return TDENetworkConnectionStatus::Invalid;
return m_internalConnectionManager->checkConnectionStatus(uuid);
}
TDENetworkConnectionStatus::TDENetworkConnectionStatus TDEGlobalNetworkManager::deactivateConnection(TQString uuid) {
if (!m_internalConnectionManager) return TDENetworkConnectionStatus::Invalid;
return m_internalConnectionManager->deactivateConnection(uuid);
}
TDENetworkHWNeighborList* TDEGlobalNetworkManager::siteSurvey() {
if (!m_internalConnectionManager) return NULL;
return m_internalConnectionManager->siteSurvey();
}
bool TDEGlobalNetworkManager::networkingEnabled() {
if (!m_internalConnectionManager) return false;
return m_internalConnectionManager->networkingEnabled();
}
bool TDEGlobalNetworkManager::wiFiHardwareEnabled() {
if (!m_internalConnectionManager) return false;
return m_internalConnectionManager->wiFiHardwareEnabled();
}
bool TDEGlobalNetworkManager::enableWiFi(bool enable) {
if (!m_internalConnectionManager) return false;
return m_internalConnectionManager->enableWiFi(enable);
}
bool TDEGlobalNetworkManager::wiFiEnabled() {
if (!m_internalConnectionManager) return false;
return m_internalConnectionManager->wiFiEnabled();
}
TDENetworkConnectionList* TDEGlobalNetworkManager::connections() {
if (!m_internalConnectionManager) return NULL;
return m_internalConnectionManager->connections();
}
TDENetworkConnection* TDEGlobalNetworkManager::findConnectionByUUID(TQString uuid) {
if (!m_internalConnectionManager) return NULL;
return m_internalConnectionManager->findConnectionByUUID(uuid);
}
/*================================================================================================*/
/* End */
/*================================================================================================*/

@ -688,4 +688,148 @@ class TDECORE_EXPORT TDENetworkConnectionManager : public TQObject
TQMap<TQString, TDENetworkConnectionStatus::TDENetworkConnectionStatus> m_prevDeviceStatus;
};
class TDECORE_EXPORT TDEGlobalNetworkManager : public TQObject
{
Q_OBJECT
public:
/**
* Constructor.
*/
TDEGlobalNetworkManager();
/**
* Destructor.
*/
~TDEGlobalNetworkManager();
/**
* @return A TDENetworkGlobalManagerFlags enum value with the current status of the networking backend.
*/
virtual TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags backendStatus();
/**
* Loads all connection information from the configuration backend
* Secret information must be loaded separately via a call to
* loadConnectionSecrets(TQString uuid) after this method has been
* executed at least once.
*/
virtual void loadConnectionInformation();
/**
* @param uuid a TQString conntaining the UUID of a connection for which to
* load secrets from the configuration backend.
* @return true on success, false on failure.
*/
virtual bool loadConnectionSecrets(TQString uuid);
/**
* @param connection a pointer to a TDENetworkConnection object containing a
* connection to save to the configuration backend.
* @return true on success, false on failure.
*/
virtual bool saveConnection(TDENetworkConnection* connection);
/**
* @param uuid a TQString conntaining the UUID of a connection to
* delete from the configuration backend.
* @return true on success, false on failure.
*/
virtual bool deleteConnection(TQString uuid);
/**
* Initiates a connection with UUID @param uuid.
* @return A TDENetworkConnectionStatus enum value with the current connection status
* The client application should poll for status updates using checkConnectionStatus()
*/
virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus initiateConnection(TQString uuid);
/**
* Checks the status of a connection with UUID @param uuid.
* @return A TDENetworkConnectionStatus enum value with the current connection status
*/
virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus checkConnectionStatus(TQString uuid);
/**
* Disconnects a connection with UUID @param uuid.
* @return A TDENetworkConnectionStatus enum value with the current connection status
* The client application should poll for status updates using checkConnectionStatus()
*/
virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus deactivateConnection(TQString uuid);
/**
* @return a TDENetworkHWNeighborList object containing the result of a site survey;
* i.e. all nearby access points or devices. This function only returns valid information
* if the underlying network device supports site surveys.
*
* Note that the returned list is internally managed and must not be deleted!
* Also note that pointers in the list may become invalid on subsequent calls to
* siteSurvey().
*/
virtual TDENetworkHWNeighborList* siteSurvey();
/**
* @return true if networking is enabled, false if not.
*/
virtual bool networkingEnabled();
/**
* @return true if WiFi hardware is enabled, false if not.
*/
virtual bool wiFiHardwareEnabled();
/**
* @param enable true to enable WiFi, false to disable it.
* @return true on success, false on failure.
*/
virtual bool enableWiFi(bool enable);
/**
* @return true if WiFi is enabled, false if not.
*/
virtual bool wiFiEnabled();
signals:
/**
* Emitted whenever the state of the system's connection changes
* If previous state data was unavailable, @param previousState will contain TDENetworkConnectionStatus::Invalid
*/
void networkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState, TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags previousState);
/**
* Emitted whenever the state of a device changes
* If previous state data was unavailable, @param previousState will contain TDENetworkConnectionStatus::Invalid
* If the global connection state has changed, @param hwAddress will be empty, otherwise it will contain the MAC address
* of the networking hardware that has changed state.
*/
void networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TDENetworkConnectionStatus::TDENetworkConnectionStatus previousState, TQString hwAddress);
public:
/**
* @return a TDENetworkConnectionList object containing a list of all
* possible connections this connection manager is aware of, regardless
* of current state or availability.
*
* loadConnectionInformation() should be called at least once before calling
* this method, in order to update internal connection information from the
* configuration backend.
*
* Note that the returned list is internally managed and must not be deleted!
* Also note that pointers in the list may become invalid on subsequent calls to
* loadConnectionInformation(), saveConnection(), deleteConnection(), or connections().
*/
virtual TDENetworkConnectionList* connections();
/**
* @return a pointer to a TDENetworkConnection object with the specified @param uuid,
* or a NULL pointer if no such connection exists.
*
* Note that the returned object is internally managed and must not be deleted!
*/
TDENetworkConnection* findConnectionByUUID(TQString uuid);
private:
TDENetworkConnectionManager* m_internalConnectionManager;
};
#endif // _TDENETWORKCONNECTIONS_H
Loading…
Cancel
Save