| author | teknolog | 
| Wed, 31 Mar 2010 15:36:43 +0100 | |
| changeset 62 | c06c2a75bb57 | 
| parent 35 | 66c5303f3610 | 
| child 37 | 1644b7cd063e | 
| child 63 | a8538f50e2ba | 
| permissions | -rw-r--r-- | 
| 2 | 1 | /* | 
| 2 | * Copyright (c) 2007-2010 Sebastian Brannstrom, Lars Persson, EmbedDev AB | |
| 3 | * | |
| 4 | * All rights reserved. | |
| 5 | * This component and the accompanying materials are made available | |
| 6 | * under the terms of the License "Eclipse Public License v1.0" | |
| 7 | * which accompanies this distribution, and is available | |
| 8 | * at the URL "http://www.eclipse.org/legal/epl-v10.html". | |
| 9 | * | |
| 10 | * Initial Contributors: | |
| 11 | * EmbedDev AB - initial contribution. | |
| 12 | * | |
| 13 | * Contributors: | |
| 14 | * | |
| 15 | * Description: | |
| 16 | * | |
| 17 | */ | |
| 18 | ||
| 19 | #ifndef PODCAST_CONNECTIONENGINE_H | |
| 20 | #define PODCAST_CONNECTIONENGINE_H | |
| 21 | ||
| 22 | ||
| 23 | // Connect using mobility extension | |
| 24 | #include <in_sock.h> | |
| 25 | #include <connpref.h> | |
| 26 | #include <commdbconnpref.h> | |
| 27 | #include <comms-infras/cs_mobility_apiext.h> | |
| 28 | ||
| 29 | // Using connection manager settings UI | |
| 30 | #include <cmapplicationsettingsui.h> | |
| 31 | class CPodcastModel; | |
| 32 | ||
| 33 | class MConnectionObserver | |
| 34 | 	{
 | |
| 35 | public: | |
| 13 | 36 | virtual void ConnectionSelectionStart() = 0; | 
| 37 | virtual void ConnectionSelectionEnd() = 0; | |
| 2 | 38 | virtual void ConnectCompleteL(TInt aErrorCode) = 0; | 
| 39 | virtual void Disconnected() = 0; | |
| 40 | }; | |
| 41 | ||
| 42 | /** | |
| 43 | * This class helps to connect using three available methods | |
| 44 | * SNAP, Mobility extension and Connection manager UI | |
| 45 | */ | |
| 46 | class CConnectionEngine:public CActive, public MMobilityProtocolResp | |
| 47 | 	{
 | |
| 48 | public: | |
| 49 | enum TConnectionType | |
| 50 | 		{
 | |
| 51 | EUserSelectConnection, | |
| 52 | ESNAPConnection, | |
| 53 | EMobilityConnection, | |
| 54 | EDefaultConnection, | |
| 55 | EIAPConnection | |
| 56 | }; | |
| 57 | ||
| 58 | enum TConnectionState | |
| 59 | 		{
 | |
| 60 | ENotConnected, | |
| 61 | EConnecting, | |
| 62 | EConnected | |
| 63 | }; | |
| 64 | ||
| 65 | static CConnectionEngine* NewL(CPodcastModel& aPodcastModel); | |
| 66 | ~CConnectionEngine(); | |
| 67 | void StartL(TConnectionType aConnectionType); | |
| 68 | RConnection& Connection(); | |
| 69 | TConnectionState ConnectionState(); | |
| 70 | void AddObserver(MConnectionObserver* aObserver); | |
| 71 | RSocketServ& SockServ(); | |
| 72 | private: // Methods | |
| 73 | CConnectionEngine(CPodcastModel& aPodcastModel); | |
| 74 | void ConstructL(); | |
| 75 | protected: | |
| 76 | // From CActive | |
| 77 | void RunL(); | |
| 78 | void DoCancel(); | |
| 79 | TInt RunError( TInt aError ); | |
| 80 | protected: | |
| 81 | // From MMobilityProtocolResp | |
| 82 | void PreferredCarrierAvailable( TAccessPointInfo aOldAPInfo, | |
| 83 | TAccessPointInfo aNewAPInfo, | |
| 84 | TBool aIsUpgrade, | |
| 85 | TBool aIsSeamless ); | |
| 86 | ||
| 87 | void NewCarrierActive( TAccessPointInfo aNewAPInfo, TBool aIsSeamless ); | |
| 88 | void Error( TInt aError ); | |
| 89 | protected: | |
| 90 | // UI Setting | |
| 91 | TBool ConnectionSettingL(); | |
| 92 | ||
| 35 
66c5303f3610
A ton of CodeScanner fixes (high issues) - but not all
 Brendan Donegan <brendand@symbian.org> parents: 
13diff
changeset | 93 | void ReportConnectionL(TInt aError); | 
| 13 | 94 | void ReportConnectionSelectionStart(); | 
| 95 | void ReportConnectionSelectionEnd(); | |
| 96 | ||
| 2 | 97 | private: | 
| 98 | RConnection iConnection; | |
| 99 | RSocketServ iSocketServer; | |
| 100 | // Connect using mobility extension | |
| 101 | CActiveCommsMobilityApiExt* iMobility; | |
| 102 | ||
| 103 | // Using connection manager settings UI | |
| 104 | TCmSettingSelection iUserSelection; | |
| 105 | ||
| 106 | // Connect using Commdb | |
| 107 | TCommDbConnPref iCommdbPreference; | |
| 108 | ||
| 109 | // Connect using SNAP setting | |
| 110 | TConnSnapPref iSnapPreference; | |
| 111 | ||
| 112 | TConnectionType iConnectionType; | |
| 113 | TConnectionState iConnectionState; | |
| 114 | RPointerArray<MConnectionObserver> iObserverArray; | |
| 115 | CPodcastModel &iPodcastModel; // reference to the model | |
| 116 | }; | |
| 117 | ||
| 118 | #endif // PODCAST_CONNECTIONENGINE_H |