00001 /* 00002 * ============================================================================== 00003 * Name : rconnmon.h 00004 * Part of : Connection Monitor / ConnMon.dll 00005 * Description : 00006 * RConnectionMonitor provides an interface for an application 00007 * to get information about active data connection. It also provides 00008 * a way to close any connection or all the connections. 00009 * 00010 * Copyright © 2002 Nokia Corporation. 00011 * This material, including documentation and any related 00012 * computer programs, is protected by copyright controlled by 00013 * Nokia Corporation. All rights are reserved. Copying, 00014 * including reproducing, storing, adapting or translating, any 00015 * or all of this material requires the prior written consent of 00016 * Nokia Corporation. This material also contains confidential 00017 * information which may not be disclosed to others without the 00018 * prior written consent of Nokia Corporation. 00019 * 00020 * ============================================================================== 00021 */ 00022 00023 #ifndef __CONNECTIONMONITOR_H 00024 #define __CONNECTIONMONITOR_H 00025 00026 // INCLUDES 00027 #include <e32base.h> 00028 00029 // CONSTANTS 00030 00031 // TInt Attributes 00032 // Used by GetIntAttribute 00033 const TUint KBearer =1; // TConnMonBearerType 00034 const TUint KNetworkStatus =2; // TConnMonNetworkStatus 00035 const TUint KConnectionStatus =3; // progress constants from nifvar.h 00036 const TUint KProtocolType =4; // TConnMonProtocolType 00037 const TUint KNetworkRegistration =5; // TConnMonNetworkRegistration 00038 const TUint KSignalStrength =6; // dBm 00039 const TUint KNetworkMode =7; // TConnMonNetworkMode 00040 const TUint KSecurityMode =8; // TConnMonSecurityMode 00041 const TUint KTrafficClass =30; // Qos - Not supported 00042 const TUint KDeliveryOrder =31; // Qos - Not supported 00043 const TUint KErroneousSDUDelivery =32; // Qos - Not supported 00044 const TUint KResidualBitErrorRatio =33; // Qos - Not supported 00045 const TUint KSDUErrorRatio =34; // Qos - Not supported 00046 00047 // TUInt Attributes 00048 // Used by GetUintAttribute, SetUintAttribute 00049 const TUint KDownlinkData =100; // in bytes 00050 const TUint KUplinkData =101; // in bytes 00051 const TUint KIAPId =102; 00052 const TUint KNetworkIdentifier =103; 00053 const TUint KTransmitPower =104; // mW 00054 #start_since SINCE_3_1_SDK 00055 00059 const TUint KMobilePhoneNetworkMode =105; // TConnMonMobilePhoneNetworkMode 00060 #end_since SINCE_3_1_SDK 00061 const TUint KMaximumBitrateDownlink =130; // Qos - Not supported 00062 const TUint KMaximumBitrateUplink =131; // Qos - Not supported 00063 const TUint KMaximumSDUSize =132; // Qos - Not supported 00064 const TUint KTransferDelay =133; // Qos - Not supported 00065 const TUint KGuaranteedBitrateDownlink =134; // Qos - Not supported 00066 const TUint KGuaranteedBitrateUplink =135; // Qos - Not supported 00067 const TUint KTrafficHandlingPriority =136; // Qos - Not supported 00068 const TUint KActivityTimeThreshold =150; // in seconds, minimum allowed is 5 00069 const TUint KDownlinkDataThreshold =151; // in bytes, minimum allowed is 4096 00070 const TUint KUplinkDataThreshold =152; // in bytes, minimum allowed is 4096 00071 const TUint KBearerAvailabilityThreshold =153; // 1 means that events are 'ON', 0 means 'OFF' 00072 const TUint KSignalStrengthThreshold =154; // 1 means that events are 'ON', 0 means 'OFF' 00073 00074 // TBool Attributes 00075 // Used by GetBoolAttribute, SetBoolAttribute 00076 const TUint KConnectionActive =200; 00077 const TUint KBearerAvailability =201; 00078 const TUint KConnectionStop =250; 00079 const TUint KConnectionStopAll =251; 00080 00081 // TDes Attributes 00082 // Used by GetStringAttribute 00083 const TUint KIAPName =300; 00084 const TUint KAccessPointName =301; 00085 const TUint KTelNumber =302; 00086 const TUint KNetworkName =303; 00087 00088 // TPckgBuf Attributes 00089 // Used by GetPckgAttribute 00090 const TUint KStartTime =400; // TTime 00091 const TUint KClientInfo =401; // TConnMonClientEnum (connections only) 00092 const TUint KNetworkNames =402; // TConnMonNetworkNames 00093 const TUint KIapAvailability =403; // TConnMonIapInfo 00094 #start_since SINCE_3_1_SDK 00095 00099 const TUint KWLANNetworks =404; // ConnMonWLANNetworksArrayPckg 00104 const TUint KSNAPsAvailability =405; // returns SNAPs ids in old iap-like way (see KIapAvailability) 00109 const TUint KAvailableSNAPsIds =406; // returns SNAPs ids in TConnMonIdsArrayPckg 00110 #end_since SINCE_3_1_SDK 00111 // Base value for plug-in specific attribute ids 00112 const TUint KConnMonPluginAttributeBase =3000000; 00113 00114 // DATA TYPES 00115 00116 // Bearer type 00117 enum TConnMonBearerType 00118 { 00119 EBearerUnknown = 0, 00120 EBearerCSD = 1, // CSD (GSM) 00121 EBearerWCDMA = 2, // PSD (WCDMA) 00122 EBearerLAN = 3, 00123 EBearerCDMA2000 = 4, 00124 EBearerGPRS = 5, 00125 EBearerHSCSD = 6, // HSCSD (GSM) 00126 EBearerEdgeGPRS = 7, 00127 EBearerWLAN = 8, 00128 EBearerBluetooth = 9, 00129 EBearerVirtual = 10, 00130 EBearerVirtualVPN = 11, 00131 EBearerWcdmaCSD = 12, // CSD (WCDMA) 00132 EBearerExternalCSD = 30, // ext CSD (GSM) 00133 EBearerExternalWCDMA = 31, // ext PSD (WCDMA) 00134 EBearerExternalLAN = 32, 00135 EBearerExternalCDMA2000 = 33, 00136 EBearerExternalGPRS = 34, 00137 EBearerExternalHSCSD = 35, // ext HSCSD (GSM) 00138 EBearerExternalEdgeGPRS = 36, 00139 EBearerExternalWLAN = 37, 00140 EBearerExternalBluetooth = 38, 00141 EBearerExternalWcdmaCSD = 39 // ext CSD (WCDMA) 00142 }; 00143 00144 // Bearer specific general connection id 00145 enum TConnMonBearerId 00146 { 00147 EBearerIdAll = 0, 00148 EBearerIdGPRS = 2000000, // covers internal and external GPRS and EdgeGPRS 00149 EBearerIdWCDMA = 2000001, // covers internal and external PSD (WCDMA) 00150 EBearerIdCSD = 2000002, // covers internal and external CSD and HSCSD (GSM) 00151 EBearerIdGSM = 2000003, // union of EBearerIdGPRS and EBearerIdCSD 00152 EBearerIdWLAN = 2000004, 00153 EBearerIdLAN = 2000005, 00154 EBearerIdWcdmaCSD = 2000006, // covers internal and external CSD (WCDMA) 00155 EBearerIdCDMA2000 = 2000007, 00156 EBearerIdVirtualVPN = 2000008 00157 }; 00158 00159 // Network status 00160 enum TConnMonNetworkStatus 00161 { 00162 EConnMonStatusNotAvailable = 0, 00163 EConnMonStatusUnattached, 00164 EConnMonStatusAttached, 00165 EConnMonStatusActive, 00166 EConnMonStatusSuspended 00167 }; 00168 00169 // Protocol Type (type of PDP) 00170 // It may not be available for some bearers (returns EProtocolTypeUnknown). 00171 enum TConnMonProtocolType 00172 { 00173 EProtocolTypeUnknown = 0, 00174 EProtocolTypeIPv4, 00175 EProtocolTypeIPv6, 00176 EProtocolTypeX25, 00177 EProtocolTypePPP, 00178 EProtocolTypeCDPD, 00179 EProtocolTypeIP // connection uses both IPv4 and IPv6 00180 }; 00181 00182 // Asyncronous request codes 00183 enum TConnMonAsyncRequest 00184 { 00185 EConnMonGetConnectionCount = 1, 00186 EConnMonGetIntAttribute, 00187 EConnMonGetUintAttribute, 00188 EConnMonGetBoolAttribute, 00189 EConnMonGetStringAttribute, 00190 EConnMonGetPckgAttribute 00191 }; 00192 00193 // Events sent by Connection Monitor 00194 enum TConnMonEvent 00195 { 00196 EConnMonCreateConnection = 1, 00197 EConnMonDeleteConnection = 2, 00198 EConnMonCreateSubConnection = 3, 00199 EConnMonDeleteSubConnection = 4, 00200 EConnMonDownlinkDataThreshold = 5, 00201 EConnMonUplinkDataThreshold = 6, 00202 EConnMonNetworkStatusChange = 7, 00203 EConnMonConnectionStatusChange = 8, 00204 EConnMonConnectionActivityChange = 9, 00205 EConnMonNetworkRegistrationChange = 10, 00206 EConnMonBearerChange = 11, 00207 EConnMonSignalStrengthChange = 12, 00208 EConnMonBearerAvailabilityChange = 13, 00209 EConnMonIapAvailabilityChange = 14, 00210 EConnMonTransmitPowerChange = 15, 00211 #start_since SINCE_3_1_SDK 00212 EConnMonSNAPsAvailabilityChange = 16, 00213 EConnMonNewWLANNetworkDetected = 17, 00214 EConnMonOldWLANNetworkLost = 18, 00215 #end_since SINCE_3_1_SDK 00216 EConnMonPluginEventBase = 4000000 00217 }; 00218 00219 // Network registration status. Valid for CSD, GPRS and WCDMA. 00220 enum TConnMonNetworkRegistration 00221 { 00222 ENetworkRegistrationNotAvailable = 0, 00223 ENetworkRegistrationUnknown, 00224 ENetworkRegistrationNoService, 00225 ENetworkRegistrationEmergencyOnly, 00226 ENetworkRegistrationSearching, 00227 ENetworkRegistrationBusy, 00228 ENetworkRegistrationHomeNetwork, 00229 ENetworkRegistrationDenied, 00230 ENetworkRegistrationRoaming 00231 }; 00232 00233 // Traffic class 00234 enum TQosTrafficClass 00235 { 00236 EQosTrafficClassConversational = 1, 00237 EQosTrafficClassStreaming, 00238 EQosTrafficClassInteractive, 00239 EQosTrafficClassBackground 00240 }; 00241 00242 // Delivery order 00243 enum TQosDeliveryOrder 00244 { 00245 EQosDeliveryOrderYes = 1, 00246 EQosDeliveryOrderNo 00247 }; 00248 00249 // Delivery of erroneous SDUs 00250 enum TQosErroneousSDUDelivery 00251 { 00252 EQosErroneousSDUDeliveryYes = 1, 00253 EQosErroneousSDUDeliveryNo, 00254 EQosErroneousSDUDeliveryUnspecified 00255 }; 00256 00257 // Residual bit error ratio 00258 enum TQosBitErrorRatio 00259 { 00260 EQosBERFivePerHundred = 1, 00261 EQosBEROnePerHundred, 00262 EQosBERFivePerThousand, 00263 EQosBEROnePerThousand, 00264 EQosBEROnePerTenThousand, 00265 EQosBEROnePerMillion 00266 }; 00267 00268 // SDU error ratio 00269 enum TQosSDUErrorRatio 00270 { 00271 EQosSDUErrorRatioOnePerHundred = 1, 00272 EQosSDUErrorRatioSevenPerThousand, 00273 EQosSDUErrorRatioOnePerThousand, 00274 EQosSDUErrorRatioOnePerTenThousand, 00275 EQosSDUErrorRatioOnePerHundredThousand 00276 }; 00277 00278 // Client-server requests 00279 enum TConnMonRequests 00280 { 00281 EReqGetConnectionCount = 0, 00282 EReqGetConnectionInfo = 1, 00283 EReqGetSubConnectionInfo = 2, 00284 EReqGetIntAttribute = 3, 00285 EReqGetUintAttribute = 4, 00286 EReqGetBoolAttribute = 5, 00287 EReqGetStringAttribute = 6, 00288 EReqGetPckgAttribute = 7, 00289 EReqSetIntAttribute = 8, 00290 EReqSetUintAttribute = 9, 00291 EReqSetBoolAttribute = 10, 00292 EReqSetStringAttribute = 11, 00293 EReqSetPckgAttribute = 12, 00294 EReqCancelAsyncRequest = 13, 00295 EReqReceiveEvent = 14, 00296 EReqCancelReceiveEvent = 15, 00297 00298 EReqPluginCreateSubSession = 500, 00299 EReqPluginCloseSubSession = 501, 00300 EReqPluginRegisterAttribute = 502, 00301 EReqPluginCancelRegisterAttribute = 503, 00302 EReqPluginEvent = 504, 00303 EReqPluginGetQuery = 505, 00304 EReqPluginCancelGetQuery = 506, 00305 EReqPluginAttribute = 507, 00306 00307 EReqInternalSetThreshold = 600, 00308 EReqInternalResetThreshold = 601 00309 }; 00310 00311 // WLAN connection modes 00312 enum TConnMonNetworkMode 00313 { 00314 EConnMonInfraStructure = 0, 00315 EConnMonAdHoc = 1, 00316 EConnMonSecureInfra = 2 00317 }; 00318 00319 // WLAN connection security modes 00320 enum TConnMonSecurityMode 00321 { 00322 EConnMonSecurityOpen = 0, 00323 EConnMonSecurityWep = 1, 00324 EConnMonSecurity802d1x = 2, 00325 EConnMonSecurityWpa = 3, 00326 EConnMonSecurityWpaPsk = 4 00327 }; 00328 00329 #start_since SINCE_3_1_SDK 00330 00335 enum TConnMonMobilePhoneNetworkMode 00336 { 00340 EConnMonNetworkModeUnknown = 0, 00344 EConnMonNetworkModeUnregistered, 00346 EConnMonNetworkModeGsm, 00350 EConnMonNetworkModeAmps, 00354 EConnMonNetworkModeCdma95, 00358 EConnMonNetworkModeCdma2000, 00362 EConnMonNetworkModeWcdma, 00366 EConnMonNetworkModeTdcdma 00367 }; 00368 #end_since SINCE_3_1_SDK 00369 00370 // Maximum size of a plug-in's attribute or event data 00371 const TUint KConnMonMaxPluginDataSize = 512; 00372 const TUint KConnMonMaxStringAttributeLength = 64; 00373 00374 00375 // Package class definition for getting the TTime 00376 typedef TPckgBuf< TTime > TConnMonTimeBuf; 00377 00378 // Package class definition for getting the client information 00379 const TUint KConnMonMaxClientUids = 10; 00380 00381 class TConnMonClientEnum 00382 { 00383 public: 00384 #start_since SINCE_3_1_SDK 00385 00388 inline TConnMonClientEnum():iCount(0){} 00389 public: 00390 #end_since SINCE_3_1_SDK 00391 00394 TUint iCount; 00398 TUid iUid[ KConnMonMaxClientUids ]; 00399 }; 00400 typedef TPckgBuf< TConnMonClientEnum > TConnMonClientEnumBuf; 00401 00402 // Package class definition for getting network names 00403 const TUint KConnMonMaxNetworkCount = 10; 00404 00405 class TConnMonNetwork 00406 { 00407 public: 00408 #start_since SINCE_3_1_SDK 00409 00412 inline TConnMonNetwork():iType(0), iSignalStrength(0){} 00413 public: 00414 #end_since SINCE_3_1_SDK 00415 00418 TBuf8< 32 > iName; 00422 TInt8 iType; // see TConnMonNetworkMode 00426 TUint8 iSignalStrength; 00427 }; 00428 00429 class TConnMonNetworkNames 00430 { 00431 public: 00432 #start_since SINCE_3_1_SDK 00433 00436 inline TConnMonNetworkNames():iCount(0){} 00440 inline TUint Count() {return iCount;} 00441 public: 00442 #end_since SINCE_3_1_SDK 00443 00446 TUint iCount; 00450 TConnMonNetwork iNetwork[ KConnMonMaxNetworkCount ]; 00451 }; 00452 00453 typedef TPckgBuf< TConnMonNetworkNames > TConnMonNetworkNamesBuf; 00454 00455 // Package class definiton for getting available IAPs 00456 const TUint KConnMonMaxIAPCount = 25; 00457 00458 class TConnMonIap 00459 { 00460 public: 00461 #start_since SINCE_3_1_SDK 00462 00465 inline TConnMonIap():iIapId(0){} 00466 public: 00467 #end_since SINCE_3_1_SDK 00468 00471 TUint iIapId; 00472 }; 00473 00474 class TConnMonIapInfo 00475 { 00476 public: 00477 #start_since SINCE_3_1_SDK 00478 00481 inline TConnMonIapInfo():iCount(0){} 00485 inline TUint Count() {return iCount;} 00486 public: 00487 #end_since SINCE_3_1_SDK 00488 00491 TUint iCount; 00495 TConnMonIap iIap[ KConnMonMaxIAPCount ]; 00496 }; 00497 00498 typedef TPckgBuf< TConnMonIapInfo > TConnMonIapInfoBuf; 00499 00500 #start_since SINCE_3_1_SDK 00501 00505 const TUint KConnMonMaxSNAPsCount = 25; 00506 00510 class TConnMonSNAPId 00511 { 00512 public: 00516 inline TConnMonSNAPId():iSNAPId(0){} 00517 public: 00521 TUint iSNAPId; 00522 }; 00523 00527 class TConnMonSNAPInfo 00528 { 00529 public: 00533 inline TConnMonSNAPInfo():iCount(0){} 00537 inline TUint Count() {return iCount;} 00538 public: 00543 TUint iCount; // amount of items in iSNAP 00548 TConnMonSNAPId iSNAP[ KConnMonMaxSNAPsCount ]; // array of ids of available SNAPs 00549 }; 00550 00554 typedef TPckgBuf< TConnMonSNAPInfo > TConnMonSNAPInfoBuf; 00555 #end_since SINCE_3_1_SDK 00556 00557 00558 #start_since SINCE_3_1_SDK 00559 00566 class TConnMonId : public MDesSerializer<TConnMonId> 00567 { 00568 00569 public: 00570 00575 static const TUint KMaxSize = ( 00576 sizeof(TUid) // iId 00577 )/ sizeof(TChar) + 1; // +1 is for rounding to bigger integer 00578 00583 enum FieldsShifts 00584 { 00585 EId = 0 00586 }; 00587 00592 IMPORT_C TConnMonId(TUint aId); 00593 00600 IMPORT_C TUint Id() const; 00601 00602 // From MDesSerializer 00603 00607 IMPORT_C const HBufC* ToBuf() const; 00608 00612 IMPORT_C static TConnMonId FromPtrC(const TPtrC& aPtrC); 00613 00614 protected: 00615 00616 private: 00617 00618 protected: // data 00619 00623 const TUint iId; 00624 00625 private: // data 00626 00627 }; 00628 00633 typedef RArray<TConnMonId> RConnMonIdsArray; 00634 00641 class ConnMonIdsArrayPckg 00642 { 00643 public: 00644 00651 ConnMonIdsArrayPckg(const RArray<TConnMonId>& aRef, TUint aBufSize); 00652 00658 IMPORT_C ConnMonIdsArrayPckg(TUint aBufSize); 00659 00663 IMPORT_C virtual ~ConnMonIdsArrayPckg(); 00664 00670 IMPORT_C void UnpackToL(RArray<TConnMonId>& aRef) const; 00671 00677 IMPORT_C HBufC* Buf() const; 00678 00679 // data 00680 protected: 00681 00685 HBufC* iBuf; 00686 00687 }; 00688 #end_since SINCE_3_1_SDK 00689 00690 // FORWARD DECLARATIONS 00691 class CConnMonEventBase; 00692 class CConnMonEventHandler; 00693 00694 // CLASS DECLARATION 00704 class MConnectionMonitorObserver 00705 { 00706 public: 00713 virtual void EventL( const CConnMonEventBase &aConnMonEvent ) =0; 00714 }; 00715 00721 class RConnectionMonitor : public RSessionBase 00722 { 00723 public: // Constructor 00724 inline RConnectionMonitor() : RSessionBase(), iHandler( 0 ), iPtrArray(), iIndex( 0 ) {}; 00725 00726 public: // New methods 00733 IMPORT_C TInt ConnectL(); 00734 00741 IMPORT_C void Close(); 00742 00750 IMPORT_C void GetConnectionCount( TUint& aConnectionCount, TRequestStatus& aStatus ); 00751 00761 IMPORT_C TInt GetConnectionInfo( const TUint aIndex, 00762 TUint& aConnectionId, 00763 TUint& aSubConnectionCount ) const; 00764 00772 IMPORT_C TInt GetSubConnectionInfo( const TUint aConnectionId, 00773 const TUint aIndex, 00774 TUint& aSubConnectionId ) const; 00775 00785 IMPORT_C void GetIntAttribute( const TUint aConnectionId, 00786 const TUint aSubConnectionId, 00787 const TUint aAttribute, 00788 TInt& aValue, 00789 TRequestStatus& aStatus ); 00790 00800 IMPORT_C void GetUintAttribute( const TUint aConnectionId, 00801 const TUint aSubConnectionId, 00802 const TUint aAttribute, 00803 TUint& aValue, 00804 TRequestStatus& aStatus ); 00805 00815 IMPORT_C void GetBoolAttribute( const TUint aConnectionId, 00816 const TUint aSubConnectionId, 00817 const TUint aAttribute, 00818 TBool& aValue, 00819 TRequestStatus& aStatus ); 00820 00830 IMPORT_C void GetStringAttribute( const TUint aConnectionId, 00831 const TUint aSubConnectionId, 00832 const TUint aAttribute, 00833 TDes& aValue, 00834 TRequestStatus& aStatus ) const; 00835 00845 IMPORT_C void GetPckgAttribute( const TUint aConnectionId, 00846 const TUint aSubConnectionId, 00847 const TUint aAttribute, 00848 TDes8& aValue, 00849 TRequestStatus& aStatus ) const; 00850 00851 #start_since SINCE_3_1_SDK 00852 00862 IMPORT_C void GetPckgAttribute( const TUint aConnectionId, 00863 const TUint aSubConnectionId, 00864 const TUint aAttribute, 00865 TDes16& aValue, 00866 TRequestStatus& aStatus ) const; 00867 #end_since SINCE_3_1_SDK 00868 00877 IMPORT_C TInt SetIntAttribute( const TUint aConnectionId, 00878 const TUint aSubConnectionId, 00879 const TUint aAttribute, 00880 const TInt aValue ) const; 00881 00890 IMPORT_C TInt SetUintAttribute( const TUint aConnectionId, 00891 const TUint aSubConnectionId, 00892 const TUint aAttribute, 00893 const TUint aValue ) const; 00894 00904 IMPORT_C TInt SetBoolAttribute( const TUint aConnectionId, 00905 const TUint aSubConnectionId, 00906 const TUint aAttribute, 00907 const TBool aValue ) const; 00908 00917 IMPORT_C TInt SetStringAttribute( const TUint aConnectionId, 00918 const TUint aSubConnectionId, 00919 const TUint aAttribute, 00920 const TDes& aValue ) const; 00921 00930 IMPORT_C TInt SetPckgAttribute( const TUint aConnectionId, 00931 const TUint aSubConnectionId, 00932 const TUint aAttribute, 00933 const TDes8& aValue ) const; 00934 00941 IMPORT_C void CancelAsyncRequest( TInt aReqToCancel ); 00942 00948 IMPORT_C TInt NotifyEventL( MConnectionMonitorObserver& aObserver ); 00949 00954 IMPORT_C void CancelNotifications(); 00955 00956 private: // New methods 00957 void ReceiveEvent( TDes8& aBuffer, TDes8& aExtraBuf, TRequestStatus& aStatus ); 00958 void CancelReceiveEvent(); 00959 TBool IsConnected() const; 00960 TPtr8& NextPtr(); 00961 00962 private: // Data 00963 CConnMonEventHandler* iHandler; 00964 RArray< TPtr8 > iPtrArray; 00965 TInt iIndex; 00966 00967 private: // Friend classes 00968 friend class CConnMonEventHandler; 00969 }; 00970 00977 NONSHARABLE_CLASS( CConnMonEventBase ) : public CBase 00978 { 00979 public: // constructors and destructor 00980 CConnMonEventBase( const TInt aEventType, const TUint iConnectionId ); 00981 ~CConnMonEventBase(); 00982 00983 public: // new methods 00988 IMPORT_C TInt EventType() const; 00989 00994 IMPORT_C TUint ConnectionId() const; 00995 00996 private: // Data 00997 TInt iEventType; 00998 TUint iConnectionId; 00999 }; 01000 01007 NONSHARABLE_CLASS( CConnMonCreateConnection ) : public CConnMonEventBase 01008 { 01009 public: // constructors and destructor 01010 CConnMonCreateConnection( const TUint aConnectionId ); 01011 ~CConnMonCreateConnection(); 01012 }; 01013 01020 NONSHARABLE_CLASS( CConnMonDeleteConnection ) : public CConnMonEventBase 01021 { 01022 public: // constructors and destructor 01023 CConnMonDeleteConnection( const TUint aConnectionId, 01024 const TUint aDownlinkData, 01025 const TUint aUplinkData, 01026 const TBool aAuthDelete ); 01027 ~CConnMonDeleteConnection(); 01028 01029 public: // new methods 01034 IMPORT_C TUint DownlinkData() const; 01035 01040 IMPORT_C TUint UplinkData() const; 01041 01049 IMPORT_C TBool AuthoritativeDelete() const; 01050 01051 private: // Data 01052 TUint iDownlinkData; 01053 TUint iUplinkData; 01054 TBool iAuthDelete; 01055 }; 01056 01063 NONSHARABLE_CLASS( CConnMonCreateSubConnection ) : public CConnMonEventBase 01064 { 01065 public: // constructors and destructor 01066 CConnMonCreateSubConnection( const TUint aConnectionId, 01067 const TUint aSubConnectionId ); 01068 ~CConnMonCreateSubConnection(); 01069 01070 public: // new methods 01075 IMPORT_C TUint SubConnectionId() const; 01076 01077 private: // Data 01078 TUint iSubConnectionId; 01079 }; 01080 01087 NONSHARABLE_CLASS( CConnMonDeleteSubConnection ) : public CConnMonEventBase 01088 { 01089 public: // constructors and destructor 01090 CConnMonDeleteSubConnection( const TUint aConnectionId, 01091 const TUint aSubConnectionId, 01092 const TUint aDownlinkData, 01093 const TUint aUplinkData, 01094 const TBool aAuthDelete ); 01095 ~CConnMonDeleteSubConnection(); 01096 01097 public: // new methods 01102 IMPORT_C TUint SubConnectionId() const; 01103 01108 IMPORT_C TUint DownlinkData() const; 01109 01114 IMPORT_C TUint UplinkData() const; 01115 01123 IMPORT_C TBool AuthoritativeDelete() const; 01124 01125 private: // Data 01126 TUint iSubConnectionId; 01127 TUint iDownlinkData; 01128 TUint iUplinkData; 01129 TBool iAuthDelete; 01130 }; 01131 01141 NONSHARABLE_CLASS( CConnMonDownlinkDataThreshold ) : public CConnMonEventBase 01142 { 01143 public: // constructors and destructor 01144 CConnMonDownlinkDataThreshold( const TUint aConnectionId, 01145 const TUint aSubConnectionId, 01146 const TUint aDownlinkData ); 01147 ~CConnMonDownlinkDataThreshold(); 01148 01149 public: // new methods 01154 IMPORT_C TUint SubConnectionId() const; 01155 01160 IMPORT_C TUint DownlinkData() const; 01161 01162 private: // Data 01163 TUint iSubConnectionId; 01164 TUint iDownlinkData; 01165 }; 01166 01176 NONSHARABLE_CLASS( CConnMonUplinkDataThreshold ) : public CConnMonEventBase 01177 { 01178 public: // constructors and destructor 01179 CConnMonUplinkDataThreshold( const TUint aConnectionId, 01180 const TUint aSubConnectionId, 01181 const TUint aUplinkData ); 01182 ~CConnMonUplinkDataThreshold(); 01183 01184 public: // new methods 01189 IMPORT_C TUint SubConnectionId() const; 01190 01195 IMPORT_C TUint UplinkData() const; 01196 01197 private: // Data 01198 TUint iSubConnectionId; 01199 TUint iUplinkData; 01200 }; 01201 01209 NONSHARABLE_CLASS( CConnMonNetworkStatusChange ) : public CConnMonEventBase 01210 { 01211 public: // constructors and destructor 01212 CConnMonNetworkStatusChange( const TUint aConnectionId, 01213 const TInt aNetworkStatus ); 01214 ~CConnMonNetworkStatusChange(); 01215 01216 public: // new methods 01221 IMPORT_C TInt NetworkStatus() const; 01222 01223 private: // Data 01224 TInt iNetworkStatus; 01225 }; 01226 01233 NONSHARABLE_CLASS( CConnMonConnectionStatusChange ) : public CConnMonEventBase 01234 { 01235 public: // constructors and destructor 01236 CConnMonConnectionStatusChange( const TUint aConnectionId, 01237 const TUint aSubConnectionId, 01238 const TInt aConnectionStatus ); 01239 ~CConnMonConnectionStatusChange(); 01240 01241 public: // new methods 01246 IMPORT_C TUint SubConnectionId() const; 01247 01252 IMPORT_C TInt ConnectionStatus() const; 01253 01254 private: // Data 01255 TUint iSubConnectionId; 01256 TInt iConnectionStatus; 01257 }; 01258 01268 NONSHARABLE_CLASS( CConnMonConnectionActivityChange ) : public CConnMonEventBase 01269 { 01270 public: // constructors and destructor 01271 CConnMonConnectionActivityChange( const TUint aConnectionId, 01272 const TUint aSubConnectionId, 01273 const TBool aActivity ); 01274 ~CConnMonConnectionActivityChange(); 01275 01276 public: // new methods 01281 IMPORT_C TUint SubConnectionId() const; 01282 01287 IMPORT_C TBool ConnectionActivity() const; 01288 01289 private: // Data 01290 TUint iSubConnectionId; 01291 TBool iActivity; 01292 }; 01293 01302 NONSHARABLE_CLASS( CConnMonNetworkRegistrationChange ) : public CConnMonEventBase 01303 { 01304 public: // constructors and destructor 01305 CConnMonNetworkRegistrationChange( const TUint aConnectionId, 01306 const TInt aRegistrationStatus ); 01307 ~CConnMonNetworkRegistrationChange(); 01308 01309 public: // new methods 01314 IMPORT_C TInt RegistrationStatus() const; 01315 01316 private: // Data 01317 TInt iRegistrationStatus; 01318 }; 01319 01328 NONSHARABLE_CLASS( CConnMonBearerChange ) : public CConnMonEventBase 01329 { 01330 public: // constructors and destructor 01331 CConnMonBearerChange( const TUint aConnectionId, const TInt aBearer ); 01332 ~CConnMonBearerChange(); 01333 01334 public: // new methods 01339 IMPORT_C TInt Bearer() const; 01340 01341 private: // Data 01342 TInt iBearer; 01343 }; 01344 01354 NONSHARABLE_CLASS( CConnMonSignalStrengthChange ) : public CConnMonEventBase 01355 { 01356 public: // constructors and destructor 01357 CConnMonSignalStrengthChange( const TUint aConnectionId, const TInt aSignalStrength ); 01358 ~CConnMonSignalStrengthChange(); 01359 01360 public: // new methods 01365 IMPORT_C TInt SignalStrength() const; 01366 01367 private: // Data 01368 TInt iSignalStrength; 01369 }; 01370 01379 NONSHARABLE_CLASS( CConnMonBearerAvailabilityChange ) : public CConnMonEventBase 01380 { 01381 public: // constructors and destructor 01382 CConnMonBearerAvailabilityChange( const TUint aConnectionId, 01383 const TBool aAvailability ); 01384 ~CConnMonBearerAvailabilityChange(); 01385 01386 public: // new methods 01391 IMPORT_C TBool Availability() const; 01392 01393 private: // Data 01394 TBool iAvailability; 01395 }; 01396 01405 NONSHARABLE_CLASS( CConnMonGenericEvent ) : public CConnMonEventBase 01406 { 01407 public: // constructors and destructor 01408 CConnMonGenericEvent( const TUint aType, 01409 const TUint aConnectionId, 01410 TAny* aData ); 01411 ~CConnMonGenericEvent(); 01412 01413 public: // new methods 01419 IMPORT_C TAny* Data() const; 01420 01421 private: // Data 01422 TAny* iData; 01423 }; 01424 01432 NONSHARABLE_CLASS( CConnMonIapAvailabilityChange ) : public CConnMonEventBase 01433 { 01434 public: // constructors and destructor 01435 CConnMonIapAvailabilityChange( const TUint aConnectionId, 01436 const TConnMonIapInfo* aIapInfoPtr ); 01437 ~CConnMonIapAvailabilityChange(); 01438 01439 public: // new methods 01444 IMPORT_C TConnMonIapInfo IapAvailability() const; 01445 01446 private: // Data 01447 TConnMonIapInfo iIapInfo; 01448 }; 01449 01457 NONSHARABLE_CLASS( CConnMonTransmitPowerChange ) : public CConnMonEventBase 01458 { 01459 public: // constructors and destructor 01460 CConnMonTransmitPowerChange( const TUint aConnectionId, const TUint aTransmitPower ); 01461 ~CConnMonTransmitPowerChange(); 01462 01463 public: // new methods 01468 IMPORT_C TUint TransmitPower() const; 01469 01470 private: // Data 01471 TUint iTransmitPower; 01472 }; 01473 01474 #start_since SINCE_3_1_SDK 01475 01481 NONSHARABLE_CLASS( CConnMonSNAPsAvailabilityChange ) : public CConnMonEventBase 01482 { 01483 public: // constructors and destructor 01487 CConnMonSNAPsAvailabilityChange( const TUint aConnectionId, 01488 const TUint aSNAPsAvailable, 01489 const TConnMonSNAPInfo* aSNAPInfoPtr ); 01493 ~CConnMonSNAPsAvailabilityChange(); 01494 01495 public: // new methods 01501 IMPORT_C TConnMonSNAPInfo SNAPAvailability() const; 01502 01508 IMPORT_C TUint SNAPsAvailabile() const; 01509 01510 private: // Data 01511 TConnMonSNAPInfo iSNAPInfo; 01512 TUint iSNAPsAvailable; 01513 }; 01514 01524 NONSHARABLE_CLASS( CConnMonNewWLANNetworkDetected ) : public CConnMonEventBase 01525 { 01526 public: // constructors and destructor 01530 CConnMonNewWLANNetworkDetected( const TUint aConnectionId/*, 01531 const TBool aDetected*/ ); 01535 ~CConnMonNewWLANNetworkDetected(); 01536 01537 public: // new methods 01543 // IMPORT_C TBool Detected() const; 01544 01545 // private: // Data 01546 // TBool iDetected; 01547 }; 01548 01558 NONSHARABLE_CLASS( CConnMonOldWLANNetworkLost ) : public CConnMonEventBase 01559 { 01560 public: // constructors and destructor 01564 CConnMonOldWLANNetworkLost( const TUint aConnectionId/*, 01565 const TBool aLost */); 01569 ~CConnMonOldWLANNetworkLost(); 01570 01571 public: // new methods 01577 // IMPORT_C TBool Lost() const; 01578 01579 private: // Data 01580 // TBool iLost; 01581 }; 01582 #end_since SINCE_3_1_SDK 01583 01584 01585 01586 //__CONNECTIONMONITOR_H 01587 #endif 01588 // end of file