S60 3rd Edition API Reference: rconnmon.h Source File

rconnmon.h

Go to the documentation of this file.
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

Copyright © Nokia Corporation 2001-2007
Back to top