phonesrv_plat/phone_settings_api/inc/psetnetworkwrapper.h
branchRCL_3
changeset 19 7d48bed6ce0c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_settings_api/inc/psetnetworkwrapper.h	Tue Aug 31 15:45:17 2010 +0300
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#ifndef PSETNETWORKWRAPPER_H
+#define PSETNETWORKWRAPPER_H
+
+#include <QObject>
+
+class PSetNetworkWrapperPrivate;
+class CPsetContainer;
+class HbDialog;
+
+#ifdef BUILD_PSETWRAPPER
+#define PSETWRAPPER_EXPORT Q_DECL_EXPORT
+#else
+#define PSETWRAPPER_EXPORT Q_DECL_IMPORT
+#endif
+
+class PSETWRAPPER_EXPORT PSetNetworkWrapper : public QObject
+{
+    Q_OBJECT
+
+public:
+    
+    enum ErrorCode {
+        ErrNoError  = 0,
+        ErrGeneral,
+        ErrCauseCallActive,
+        ErrNoNetworkService,
+        ErrOfflineOpNotAllowed,
+        ErrNoNetworkAccess
+    };
+    
+    enum RequestType {
+        RequestNone,
+        RequestEnumerateNetworks,
+        RequestGetNetworkInfo,
+        RequestGetCurrentNetworkInfo,
+        RequestGetNetworkSearchMode,
+        RequestSetNetwork,
+        RequestSetNetworkMode,
+        RequestSetNetworkAutomatic
+    };
+    
+    enum RegistrationStatus {
+        RegisteredOnHomeNetwork,
+        RegisteredRoaming
+    };
+    
+    enum NetworkAccessMode {
+        AccessModeDual,
+        AccessModeUmts,
+        AccessModeGsm
+    };
+    
+    struct NetworkId{
+        /*! Country code. Maximum length is 4. */
+        QString m_countryCode;
+        /*! Network code. Maximum length is 8. */
+        QString m_networkCode;
+    };
+
+    enum NetworkSelectionMode {
+        SelectionModeManual,
+        SelectionModeAutomatic 
+    };
+
+    enum NetworkStatus {
+        StatusUnknown,
+        StatusAvailable,
+        StatusCurrent,
+        StatusForbidden
+    };
+    
+    enum NetworkAccessType {
+        AccessTypeGsm, 
+        AccessTypeWcdma,
+        AccessTypeGsmAndWcdma
+    };
+
+    struct NetworkInfo {
+        NetworkId m_id;
+        NetworkStatus m_status;
+        NetworkSelectionMode m_mode;
+        NetworkAccessType m_access;
+        /*! Short name. Maximum length is 20. */
+        QString m_shortName;
+        /*! Long name. Maximum length is 30. */
+        QString m_longName;
+    };        
+
+public:
+
+    explicit PSetNetworkWrapper(CPsetContainer &psetContainer,
+        QObject *parent = NULL);
+
+    virtual ~PSetNetworkWrapper();
+
+public:
+    
+    void getAvailableNetworks();
+    
+    ErrorCode getNetworkSelectionMode(
+        PSetNetworkWrapper::NetworkSelectionMode& mode) const;
+    
+    void selectNetwork( 
+        const PSetNetworkWrapper::NetworkInfo& info);
+    
+    void cancelRequest();
+
+public:
+
+    void getNetworkAccessMode() const;
+
+    void setNetworkAccessMode(PSetNetworkWrapper::NetworkAccessMode mode);
+    
+    bool isManualNetworkSelectionSupported() const;
+
+signals:
+
+    // Real type of parameter mode is enum PSetNetworkWrapper::NetworkAccessMode.
+    void networkAccessModeGot(int mode);
+    
+    void availableNetworksGot(QList<PSetNetworkWrapper::NetworkInfo*> &networkInfoList);
+     
+    void networkReqestFailed(
+        PSetNetworkWrapper::ErrorCode error, 
+        PSetNetworkWrapper::RequestType type);
+    
+    void searchingNetworks(PSetNetworkWrapper::RequestType &type);
+    
+    void requestingSelectedNetwork(bool ongoing);
+    
+    void networkChanged(
+        PSetNetworkWrapper::NetworkInfo& currentInfo,
+        PSetNetworkWrapper::RegistrationStatus& status);
+
+    void chageVisbilityOfManualNetworkSelection(bool visible);
+    
+private:
+    
+    PSetNetworkWrapper(const PSetNetworkWrapper &);
+    PSetNetworkWrapper &operator=(const PSetNetworkWrapper &);
+    PSetNetworkWrapperPrivate* m_privateImpl;
+    friend class PSetNetworkWrapperPrivate;
+};
+
+#endif // PSETNETWORKWRAPPER_H