epoc32/include/mw/rconnmon.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@2
     5
* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     6
* which accompanies this distribution, and is available
williamr@2
     7
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description:  RConnectionMonitor provides an interface for an application to
williamr@2
    15
*                get information about active data connection. It also provides
williamr@2
    16
*                a way to close any connection or all the connections.
williamr@2
    17
*
williamr@2
    18
*/
williamr@2
    19
williamr@2
    20
#ifndef __CONNECTIONMONITOR_H
williamr@2
    21
#define __CONNECTIONMONITOR_H
williamr@2
    22
williamr@2
    23
#include <e32base.h>
williamr@2
    24
williamr@2
    25
williamr@2
    26
// ===========================================================================
williamr@2
    27
// TInt attribute constants, used by GetIntAttribute, SetIntAttribute.
williamr@2
    28
// ===========================================================================
williamr@2
    29
//
williamr@2
    30
/** Bearer, defined in TConnMonBearerType.
williamr@2
    31
*/
williamr@2
    32
const TUint KBearer = 1;
williamr@2
    33
/** Network status, defined in TConnMonNetworkStatus.
williamr@2
    34
*/
williamr@2
    35
const TUint KNetworkStatus = 2;
williamr@2
    36
/** Connection status, progress constants are from nifvar.h.
williamr@2
    37
*/
williamr@2
    38
const TUint KConnectionStatus = 3;
williamr@2
    39
/** Protocol, defined in TConnMonProtocolType.
williamr@2
    40
*/
williamr@2
    41
const TUint KProtocolType = 4;
williamr@2
    42
/** Network registration values defined in TConnMonNetworkRegistration.
williamr@2
    43
*/
williamr@2
    44
const TUint KNetworkRegistration = 5;
williamr@2
    45
/** Signal strength in dBm.
williamr@2
    46
*/
williamr@2
    47
const TUint KSignalStrength = 6;
williamr@2
    48
/** WLAN mode, defined in TConnMonNetworkMode.
williamr@2
    49
*/
williamr@2
    50
const TUint KNetworkMode = 7;
williamr@2
    51
/** WLAN connection security mode, defined in TConnMonSecurityMode.
williamr@2
    52
*/
williamr@2
    53
const TUint KSecurityMode = 8;
williamr@2
    54
/** Bearer information, defined in TConnMonBearerInfo.
williamr@2
    55
*/
williamr@2
    56
const TUint KBearerInfo = 9;
williamr@2
    57
/** Acceptable WLAN scan cache age in seconds. Set to -1 to use device
williamr@2
    58
default. Only has meaning if KWlanScanMaxDelay is set to 0.
williamr@2
    59
*/
williamr@2
    60
const TUint KWlanScanCacheLifetime = 10;
williamr@2
    61
/** QoS - Not supported.
williamr@2
    62
*/
williamr@2
    63
const TUint KTrafficClass = 30;
williamr@2
    64
/** QoS - Not supported.
williamr@2
    65
*/
williamr@2
    66
const TUint KDeliveryOrder = 31;
williamr@2
    67
/** QoS - Not supported.
williamr@2
    68
*/
williamr@2
    69
const TUint KErroneousSDUDelivery = 32;
williamr@2
    70
/** QoS - Not supported.
williamr@2
    71
*/
williamr@2
    72
const TUint KResidualBitErrorRatio = 33;
williamr@2
    73
/** QoS - Not supported.
williamr@2
    74
*/
williamr@2
    75
const TUint KSDUErrorRatio = 34;
williamr@2
    76
williamr@2
    77
williamr@2
    78
// ===========================================================================
williamr@2
    79
// TUint attribute constants, used by GetUintAttribute, SetUintAttribute.
williamr@2
    80
// ===========================================================================
williamr@2
    81
//
williamr@2
    82
/** Downlink data in bytes.
williamr@2
    83
*/
williamr@2
    84
const TUint KDownlinkData = 100;
williamr@2
    85
/** Uplink data in bytes.
williamr@2
    86
*/
williamr@2
    87
const TUint KUplinkData = 101;
williamr@2
    88
/** Used IAP ID.
williamr@2
    89
*/
williamr@2
    90
const TUint KIAPId = 102;
williamr@2
    91
/** Network ID.
williamr@2
    92
*/
williamr@2
    93
const TUint KNetworkIdentifier = 103;
williamr@2
    94
/** WLAN transmit power in mW.
williamr@2
    95
*/
williamr@2
    96
const TUint KTransmitPower = 104;
williamr@2
    97
/** Current network mode, defined in TConnMonMobilePhoneNetworkMode.
williamr@2
    98
*/
williamr@2
    99
const TUint KMobilePhoneNetworkMode = 105;
williamr@2
   100
/** QoS - Not supported.
williamr@2
   101
*/
williamr@2
   102
const TUint KMaximumBitrateDownlink = 130;
williamr@2
   103
/** QoS - Not supported.
williamr@2
   104
*/
williamr@2
   105
const TUint KMaximumBitrateUplink = 131;
williamr@2
   106
/** QoS - Not supported.
williamr@2
   107
*/
williamr@2
   108
const TUint KMaximumSDUSize = 132;
williamr@2
   109
/** QoS - Not supported.
williamr@2
   110
*/
williamr@2
   111
const TUint KTransferDelay = 133;
williamr@2
   112
/** QoS - Not supported.
williamr@2
   113
*/
williamr@2
   114
const TUint KGuaranteedBitrateDownlink = 134;
williamr@2
   115
/** QoS - Not supported.
williamr@2
   116
*/
williamr@2
   117
const TUint KGuaranteedBitrateUplink = 135;
williamr@2
   118
/** QoS - Not supported.
williamr@2
   119
*/
williamr@2
   120
const TUint KTrafficHandlingPriority = 136;
williamr@2
   121
/** Enables EConnMonConnectionActivityChange events.
williamr@2
   122
0 means off, minimum allowed is 5 seconds.
williamr@2
   123
*/
williamr@2
   124
const TUint KActivityTimeThreshold = 150;
williamr@2
   125
/** Enables EConnMonDownlinkDataThreshold events.
williamr@2
   126
0 means off, minimum allowed is 4096 bytes.
williamr@2
   127
*/
williamr@2
   128
const TUint KDownlinkDataThreshold = 151;
williamr@2
   129
/** Enables EConnMonUplinkDataThreshold events.
williamr@2
   130
0 means off, minimum allowed is 4096 bytes.
williamr@2
   131
*/
williamr@2
   132
const TUint KUplinkDataThreshold = 152;
williamr@2
   133
/** Enables EConnMonBearerAvailabilityChange events.
williamr@2
   134
*/
williamr@2
   135
const TUint KBearerAvailabilityThreshold = 153;
williamr@2
   136
/** Enables EConnMonSignalStrengthChange events.
williamr@2
   137
*/
williamr@2
   138
const TUint KSignalStrengthThreshold = 154;
williamr@2
   139
/** If set, disables EConnMonBearerChange events and enables
williamr@2
   140
EConnMonBearerInfoChange and EConnMonBearerGroupChange events instead.
williamr@2
   141
*/
williamr@2
   142
const TUint KBearerGroupThreshold = 155;
williamr@2
   143
/** Acceptable delay in seconds for receiving WLAN scan results.
williamr@2
   144
If set to 0 (default), KWlanScanCacheLifetime will be used.
williamr@2
   145
*/
williamr@2
   146
const TUint KWlanScanMaxDelay = 160;
williamr@2
   147
williamr@2
   148
williamr@2
   149
// ===========================================================================
williamr@2
   150
// TBool attribute constants, used by GetBoolAttribute, SetBoolAttribute.
williamr@2
   151
// ===========================================================================
williamr@2
   152
//
williamr@2
   153
/** Connection activity.
williamr@2
   154
*/
williamr@2
   155
const TUint KConnectionActive = 200;
williamr@2
   156
/** Bearer availability.
williamr@2
   157
*/
williamr@2
   158
const TUint KBearerAvailability = 201;
williamr@2
   159
/** Packet data availability. Can be blocked if phone call is active and no
williamr@2
   160
dual transfer mode support.
williamr@2
   161
*/
williamr@2
   162
const TUint KPacketDataAvailability = 202;
williamr@2
   163
/** Stop a connection.
williamr@2
   164
*/
williamr@2
   165
const TUint KConnectionStop = 250;
williamr@2
   166
/** Stop all connections.
williamr@2
   167
*/
williamr@2
   168
const TUint KConnectionStopAll = 251;
williamr@2
   169
williamr@2
   170
williamr@2
   171
// ===========================================================================
williamr@2
   172
// TDes attribute constants, used by GetStringAttribute, SetStringAttribute.
williamr@2
   173
// ===========================================================================
williamr@2
   174
//
williamr@2
   175
/** Name of used IAP.
williamr@2
   176
*/
williamr@2
   177
const TUint KIAPName = 300;
williamr@2
   178
/** Name of used access point.
williamr@2
   179
*/
williamr@2
   180
const TUint KAccessPointName = 301;
williamr@2
   181
/** Used telephone number.
williamr@2
   182
*/
williamr@2
   183
const TUint KTelNumber = 302;
williamr@2
   184
/** Name (SSID) of used WLAN.
williamr@2
   185
*/
williamr@2
   186
const TUint KNetworkName = 303;
williamr@2
   187
/** WLAN name (SSID) to be used in SSID scan (KWlanSsidNetworks).
williamr@2
   188
*/
williamr@2
   189
const TUint KWlanSsid = 304;
williamr@2
   190
williamr@2
   191
williamr@2
   192
// ===========================================================================
williamr@2
   193
// TPckgBuf attribute constants, used by GetPckgAttribute.
williamr@2
   194
// ===========================================================================
williamr@2
   195
//
williamr@2
   196
/** Connection start time. See TConnMonTimeBuf.
williamr@2
   197
*/
williamr@2
   198
const TUint KStartTime = 400;
williamr@2
   199
/** All clients using a connection. See TConnMonClientEnumBuf.
williamr@2
   200
*/
williamr@2
   201
const TUint KClientInfo = 401;
williamr@2
   202
/** Basic WLAN scan information. See TConnMonNetworkNamesBuf.
williamr@2
   203
*/
williamr@2
   204
const TUint KNetworkNames = 402;
williamr@2
   205
/** Available IAP IDs. See TConnMonIapInfoBuf.
williamr@2
   206
*/
williamr@2
   207
const TUint KIapAvailability = 403;
williamr@2
   208
/** Deprecated. Old WLAN scan results, use KWlanNetworks instead.
williamr@2
   209
*/
williamr@2
   210
const TUint KWLANNetworks = 404;
williamr@2
   211
/** Available SNAP IDs. See TConnMonSNAPInfoBuf.
williamr@2
   212
*/
williamr@2
   213
const TUint KSNAPsAvailability = 405;
williamr@2
   214
/** Available SNAP IDs, in a more flexible way. See ConnMonIdsArrayPckg.
williamr@2
   215
*/
williamr@2
   216
const TUint KAvailableSNAPsIds = 406;
williamr@2
   217
/** WLAN scan results. See CConnMonWlanNetworksPtrArrayPckg.
williamr@2
   218
*/
williamr@2
   219
const TUint KWlanNetworks = 407;
williamr@2
   220
/** Bearer group information. See TConnMonBearerGroupInfoBuf.
williamr@2
   221
*/
williamr@2
   222
const TUint KBearerGroupInfo = 408;
williamr@2
   223
/** WLAN SSID scan results. Scans for WLANs with a specific SSID.
williamr@2
   224
See CConnMonWlanNetworksPtrArrayPckg.
williamr@2
   225
*/
williamr@2
   226
const TUint KWlanSsidNetworks = 409;
williamr@2
   227
/** Information about the currently used WLAN.
williamr@2
   228
See CConnMonWlanNetworksPtrArrayPckg.
williamr@2
   229
*/
williamr@2
   230
const TUint KWlanCurrentNetwork = 410;
williamr@2
   231
/** Beacon frames from a WLAN scan. See CConnMonWlanProbeRawBuffersPckg.
williamr@2
   232
*/
williamr@2
   233
const TUint KWlanProbeRawBuffers = 411;
williamr@2
   234
williamr@2
   235
williamr@2
   236
/** Base value for plug-in specific attribute IDs.
williamr@2
   237
*/
williamr@2
   238
const TUint KConnMonPluginAttributeBase = 3000000;
williamr@2
   239
williamr@2
   240
williamr@2
   241
/**
williamr@2
   242
* Bearer type.
williamr@2
   243
*/
williamr@2
   244
enum TConnMonBearerType
williamr@2
   245
    {
williamr@2
   246
    EBearerUnknown           = 0,
williamr@2
   247
    EBearerCSD               = 1,  ///< CSD (GSM)
williamr@2
   248
    EBearerWCDMA             = 2,  ///< PSD (WCDMA)
williamr@2
   249
    EBearerLAN               = 3,
williamr@2
   250
    EBearerCDMA2000          = 4,
williamr@2
   251
    EBearerGPRS              = 5,
williamr@2
   252
    EBearerHSCSD             = 6,  ///< HSCSD (GSM)
williamr@2
   253
    EBearerEdgeGPRS          = 7,
williamr@2
   254
    EBearerWLAN              = 8,
williamr@2
   255
    EBearerBluetooth         = 9,
williamr@2
   256
    EBearerVirtual           = 10,
williamr@2
   257
    EBearerVirtualVPN        = 11,
williamr@2
   258
    EBearerWcdmaCSD          = 12, ///< CSD (WCDMA)
williamr@2
   259
williamr@2
   260
    EBearerExternalCSD       = 30, ///< external CSD (GSM)
williamr@2
   261
    EBearerExternalWCDMA     = 31, ///< external PSD (WCDMA)
williamr@2
   262
    EBearerExternalLAN       = 32,
williamr@2
   263
    EBearerExternalCDMA2000  = 33,
williamr@2
   264
    EBearerExternalGPRS      = 34,
williamr@2
   265
    EBearerExternalHSCSD     = 35, ///< external HSCSD (GSM)
williamr@2
   266
    EBearerExternalEdgeGPRS  = 36,
williamr@2
   267
    EBearerExternalWLAN      = 37,
williamr@2
   268
    EBearerExternalBluetooth = 38,
williamr@2
   269
    EBearerExternalWcdmaCSD  = 39, ///< external CSD (WCDMA)
williamr@2
   270
    };
williamr@2
   271
williamr@2
   272
/**
williamr@2
   273
* Bearer specific general connection ID.
williamr@2
   274
*/
williamr@2
   275
enum TConnMonBearerId
williamr@2
   276
    {
williamr@2
   277
    EBearerIdAll        = 0,
williamr@2
   278
    EBearerIdGPRS       = 2000000, ///< Internal/external GPRS and EdgeGPRS
williamr@2
   279
    EBearerIdWCDMA      = 2000001, ///< Internal/external PSD (WCDMA)
williamr@2
   280
    EBearerIdCSD        = 2000002, ///< Internal/external CSD and HSCSD (GSM)
williamr@2
   281
    EBearerIdGSM        = 2000003, ///< Union of EBearerIdGPRS and EBearerIdCSD
williamr@2
   282
    EBearerIdWLAN       = 2000004,
williamr@2
   283
    EBearerIdLAN        = 2000005,
williamr@2
   284
    EBearerIdWcdmaCSD   = 2000006, ///< Internal/external CSD (WCDMA)
williamr@2
   285
    EBearerIdCDMA2000   = 2000007,
williamr@2
   286
    EBearerIdVirtualVPN = 2000008
williamr@2
   287
    };
williamr@2
   288
williamr@2
   289
/**
williamr@2
   290
* Network status.
williamr@2
   291
*/
williamr@2
   292
enum TConnMonNetworkStatus
williamr@2
   293
    {
williamr@2
   294
    EConnMonStatusNotAvailable = 0,
williamr@2
   295
    EConnMonStatusUnattached,
williamr@2
   296
    EConnMonStatusAttached,
williamr@2
   297
    EConnMonStatusActive,
williamr@2
   298
    EConnMonStatusSuspended
williamr@2
   299
    };
williamr@2
   300
williamr@2
   301
/**
williamr@2
   302
* Protocol type (type of PDP). It may not be available for some
williamr@2
   303
* bearers (returns EProtocolTypeUnknown).
williamr@2
   304
*/
williamr@2
   305
enum TConnMonProtocolType
williamr@2
   306
    {
williamr@2
   307
    EProtocolTypeUnknown = 0,
williamr@2
   308
    EProtocolTypeIPv4,
williamr@2
   309
    EProtocolTypeIPv6,
williamr@2
   310
    EProtocolTypeX25,
williamr@2
   311
    EProtocolTypePPP,
williamr@2
   312
    EProtocolTypeCDPD,
williamr@2
   313
    EProtocolTypeIP           ///< Connection uses both IPv4 and IPv6
williamr@2
   314
    };
williamr@2
   315
williamr@2
   316
/**
williamr@2
   317
* Asyncronous request codes.
williamr@2
   318
*/
williamr@2
   319
enum TConnMonAsyncRequest
williamr@2
   320
    {
williamr@2
   321
    EConnMonGetConnectionCount = 1,
williamr@2
   322
    EConnMonGetIntAttribute,
williamr@2
   323
    EConnMonGetUintAttribute,
williamr@2
   324
    EConnMonGetBoolAttribute,
williamr@2
   325
    EConnMonGetStringAttribute,
williamr@2
   326
    EConnMonGetPckgAttribute
williamr@2
   327
    };
williamr@2
   328
williamr@2
   329
/**
williamr@2
   330
* Events sent by Connection Monitor. See SDK documentation for more details.
williamr@2
   331
*/
williamr@2
   332
enum TConnMonEvent
williamr@2
   333
    {
williamr@2
   334
    EConnMonCreateConnection          = 1,
williamr@2
   335
    EConnMonDeleteConnection          = 2,
williamr@2
   336
    EConnMonCreateSubConnection       = 3,  ///< Not supported
williamr@2
   337
    EConnMonDeleteSubConnection       = 4,  ///< Not supported
williamr@2
   338
    EConnMonDownlinkDataThreshold     = 5,
williamr@2
   339
    EConnMonUplinkDataThreshold       = 6,
williamr@2
   340
    EConnMonNetworkStatusChange       = 7,
williamr@2
   341
    EConnMonConnectionStatusChange    = 8,
williamr@2
   342
    EConnMonConnectionActivityChange  = 9,
williamr@2
   343
    EConnMonNetworkRegistrationChange = 10,
williamr@2
   344
    EConnMonBearerChange              = 11,
williamr@2
   345
    EConnMonSignalStrengthChange      = 12, ///< For cellular, not WLAN
williamr@2
   346
    EConnMonBearerAvailabilityChange  = 13,
williamr@2
   347
    EConnMonIapAvailabilityChange     = 14,
williamr@2
   348
    EConnMonTransmitPowerChange       = 15, ///< For WLAN
williamr@2
   349
    EConnMonSNAPsAvailabilityChange   = 16,
williamr@2
   350
    EConnMonNewWLANNetworkDetected    = 17,
williamr@2
   351
    EConnMonOldWLANNetworkLost        = 18,
williamr@2
   352
    EConnMonPacketDataAvailable       = 19,
williamr@2
   353
    EConnMonPacketDataUnavailable     = 20,
williamr@2
   354
    EConnMonBearerInfoChange          = 21,
williamr@2
   355
    EConnMonBearerGroupChange         = 22,
williamr@2
   356
williamr@2
   357
    EConnMonPluginEventBase           = 4000000
williamr@2
   358
    };
williamr@2
   359
williamr@2
   360
/**
williamr@2
   361
* Network registration status. Valid for CSD, GPRS and WCDMA.
williamr@2
   362
*/
williamr@2
   363
enum TConnMonNetworkRegistration
williamr@2
   364
    {
williamr@2
   365
    ENetworkRegistrationNotAvailable = 0,
williamr@2
   366
    ENetworkRegistrationUnknown,
williamr@2
   367
    ENetworkRegistrationNoService,
williamr@2
   368
    ENetworkRegistrationEmergencyOnly,
williamr@2
   369
    ENetworkRegistrationSearching,
williamr@2
   370
    ENetworkRegistrationBusy,
williamr@2
   371
    ENetworkRegistrationHomeNetwork,
williamr@2
   372
    ENetworkRegistrationDenied,
williamr@2
   373
    ENetworkRegistrationRoaming
williamr@2
   374
    };
williamr@2
   375
williamr@2
   376
/**
williamr@2
   377
* QoS. Traffic class.
williamr@2
   378
*/
williamr@2
   379
enum TQosTrafficClass
williamr@2
   380
    {
williamr@2
   381
    EQosTrafficClassConversational = 1,
williamr@2
   382
    EQosTrafficClassStreaming,
williamr@2
   383
    EQosTrafficClassInteractive,
williamr@2
   384
    EQosTrafficClassBackground
williamr@2
   385
    };
williamr@2
   386
williamr@2
   387
/**
williamr@2
   388
* QoS. Delivery order.
williamr@2
   389
*/
williamr@2
   390
enum TQosDeliveryOrder
williamr@2
   391
    {
williamr@2
   392
    EQosDeliveryOrderYes = 1,
williamr@2
   393
    EQosDeliveryOrderNo
williamr@2
   394
    };
williamr@2
   395
williamr@2
   396
/**
williamr@2
   397
* QoS. Delivery of erroneous SDUs.
williamr@2
   398
*/
williamr@2
   399
enum TQosErroneousSDUDelivery
williamr@2
   400
    {
williamr@2
   401
    EQosErroneousSDUDeliveryYes = 1,
williamr@2
   402
    EQosErroneousSDUDeliveryNo,
williamr@2
   403
    EQosErroneousSDUDeliveryUnspecified
williamr@2
   404
    };
williamr@2
   405
williamr@2
   406
/**
williamr@2
   407
* QoS. Residual bit error ratio.
williamr@2
   408
*/
williamr@2
   409
enum TQosBitErrorRatio
williamr@2
   410
    {
williamr@2
   411
    EQosBERFivePerHundred = 1,
williamr@2
   412
    EQosBEROnePerHundred,
williamr@2
   413
    EQosBERFivePerThousand,
williamr@2
   414
    EQosBEROnePerThousand,
williamr@2
   415
    EQosBEROnePerTenThousand,
williamr@2
   416
    EQosBEROnePerMillion
williamr@2
   417
    };
williamr@2
   418
williamr@2
   419
/**
williamr@2
   420
* QoS. SDU error ratio.
williamr@2
   421
*/
williamr@2
   422
enum TQosSDUErrorRatio
williamr@2
   423
    {
williamr@2
   424
    EQosSDUErrorRatioOnePerHundred = 1,
williamr@2
   425
    EQosSDUErrorRatioSevenPerThousand,
williamr@2
   426
    EQosSDUErrorRatioOnePerThousand,
williamr@2
   427
    EQosSDUErrorRatioOnePerTenThousand,
williamr@2
   428
    EQosSDUErrorRatioOnePerHundredThousand
williamr@2
   429
    };
williamr@2
   430
williamr@2
   431
/**
williamr@2
   432
* Client-server requests.
williamr@2
   433
*/
williamr@2
   434
enum TConnMonRequests
williamr@2
   435
    {
williamr@2
   436
    EReqGetConnectionCount            = 0,
williamr@2
   437
    EReqGetConnectionInfo             = 1,
williamr@2
   438
    EReqGetSubConnectionInfo          = 2,
williamr@2
   439
    EReqGetIntAttribute               = 3,
williamr@2
   440
    EReqGetUintAttribute              = 4,
williamr@2
   441
    EReqGetBoolAttribute              = 5,
williamr@2
   442
    EReqGetStringAttribute            = 6,
williamr@2
   443
    EReqGetPckgAttribute              = 7,
williamr@2
   444
    EReqSetIntAttribute               = 8,
williamr@2
   445
    EReqSetUintAttribute              = 9,
williamr@2
   446
    EReqSetBoolAttribute              = 10,
williamr@2
   447
    EReqSetStringAttribute            = 11,
williamr@2
   448
    EReqSetPckgAttribute              = 12,
williamr@2
   449
    EReqCancelAsyncRequest            = 13,
williamr@2
   450
    EReqReceiveEvent                  = 14,
williamr@2
   451
    EReqCancelReceiveEvent            = 15,
williamr@2
   452
williamr@2
   453
    EReqPluginCreateSubSession        = 500,
williamr@2
   454
    EReqPluginCloseSubSession         = 501,
williamr@2
   455
    EReqPluginRegisterAttribute       = 502,
williamr@2
   456
    EReqPluginCancelRegisterAttribute = 503,
williamr@2
   457
    EReqPluginEvent                   = 504,
williamr@2
   458
    EReqPluginGetQuery                = 505,
williamr@2
   459
    EReqPluginCancelGetQuery          = 506,
williamr@2
   460
    EReqPluginAttribute               = 507,
williamr@2
   461
williamr@2
   462
    EReqInternalSetThreshold          = 600,
williamr@2
   463
    EReqInternalResetThreshold        = 601
williamr@2
   464
    };
williamr@2
   465
williamr@2
   466
/**
williamr@2
   467
* WLAN connection modes.
williamr@2
   468
*/
williamr@2
   469
enum TConnMonNetworkMode
williamr@2
   470
    {
williamr@2
   471
    EConnMonInfraStructure = 0,
williamr@2
   472
    EConnMonAdHoc          = 1,
williamr@2
   473
    EConnMonSecureInfra    = 2
williamr@2
   474
    };
williamr@2
   475
williamr@2
   476
/**
williamr@2
   477
* WLAN connection security modes.
williamr@2
   478
*/
williamr@2
   479
enum TConnMonSecurityMode
williamr@2
   480
    {
williamr@2
   481
    EConnMonSecurityOpen   = 0,
williamr@2
   482
    EConnMonSecurityWep    = 1,
williamr@2
   483
    EConnMonSecurity802d1x = 2,
williamr@2
   484
    EConnMonSecurityWpa    = 3,
williamr@2
   485
    EConnMonSecurityWpaPsk = 4
williamr@2
   486
    };
williamr@2
   487
williamr@2
   488
/**
williamr@2
   489
* Network Modes.
williamr@2
   490
*/
williamr@2
   491
enum TConnMonMobilePhoneNetworkMode
williamr@2
   492
    {
williamr@2
   493
    EConnMonNetworkModeUnknown = 0,  ///< Network mode is unknown
williamr@2
   494
    EConnMonNetworkModeUnregistered, ///< ME is not registered
williamr@2
   495
    EConnMonNetworkModeGsm,          ///< GSM/GPRS or DCS1800 network
williamr@2
   496
    EConnMonNetworkModeAmps,         ///< AMPS network (CDMA)
williamr@2
   497
    EConnMonNetworkModeCdma95,       ///< CDMA (IS-95) network
williamr@2
   498
    EConnMonNetworkModeCdma2000,     ///< CDMA (cdma2000) network
williamr@2
   499
    EConnMonNetworkModeWcdma,        ///< WCDMA (UTRA FDD) network
williamr@2
   500
    EConnMonNetworkModeTdcdma        ///< TD-CDMA (UTRA TDD) network (WCDMA)
williamr@2
   501
    };
williamr@2
   502
williamr@2
   503
/** Maximum size of a plug-in's event data.
williamr@2
   504
*/
williamr@2
   505
const TUint KConnMonMaxPluginDataSize = 512;
williamr@2
   506
/** Maximum size of a plug-in's attribute.
williamr@2
   507
*/
williamr@2
   508
const TUint KConnMonMaxStringAttributeLength = 64;
williamr@2
   509
williamr@2
   510
/**
williamr@2
   511
* Package class definition for getting the TTime.
williamr@2
   512
*/
williamr@2
   513
typedef TPckgBuf<TTime> TConnMonTimeBuf;
williamr@2
   514
williamr@2
   515
/** Maximum number of clients contained in TConnMonClientEnum class.
williamr@2
   516
*/
williamr@2
   517
const TUint KConnMonMaxClientUids = 10;
williamr@2
   518
williamr@2
   519
/**
williamr@2
   520
* Class to contain client UIDs of a connection.
williamr@2
   521
*/
williamr@2
   522
class TConnMonClientEnum
williamr@2
   523
    {
williamr@2
   524
public:
williamr@2
   525
    /**
williamr@2
   526
    * Constructor.
williamr@2
   527
    */
williamr@2
   528
    inline TConnMonClientEnum():iCount( 0 )
williamr@2
   529
        {
williamr@2
   530
        }
williamr@2
   531
public:
williamr@2
   532
    /**
williamr@2
   533
    * Number of UIDs in iUid array.
williamr@2
   534
    */
williamr@2
   535
    TUint iCount;
williamr@2
   536
    /**
williamr@2
   537
    * Array for client UIDs.
williamr@2
   538
    */
williamr@2
   539
    TUid iUid[KConnMonMaxClientUids];
williamr@2
   540
    };
williamr@2
   541
williamr@2
   542
/**
williamr@2
   543
* Package class definition for getting the client information.
williamr@2
   544
*/
williamr@2
   545
typedef TPckgBuf<TConnMonClientEnum> TConnMonClientEnumBuf;
williamr@2
   546
williamr@2
   547
/** Maximum number of WLANs contained in TConnMonNetworkNames class.
williamr@2
   548
*/
williamr@2
   549
const TUint KConnMonMaxNetworkCount = 10;
williamr@2
   550
williamr@2
   551
/**
williamr@2
   552
* Class to contain basic WLAN information.
williamr@2
   553
*/
williamr@2
   554
class TConnMonNetwork
williamr@2
   555
{
williamr@2
   556
public:
williamr@2
   557
    /**
williamr@2
   558
    * Constructor.
williamr@2
   559
    */
williamr@2
   560
    inline TConnMonNetwork():iType( 0 ), iSignalStrength( 0 )
williamr@2
   561
        {
williamr@2
   562
        }
williamr@2
   563
public:
williamr@2
   564
    /**
williamr@2
   565
    * WLAN name (SSID).
williamr@2
   566
    */
williamr@2
   567
    TBuf8<32> iName;
williamr@2
   568
    /**
williamr@2
   569
    * WLAN mode, defined in TConnMonNetworkMode.
williamr@2
   570
    */
williamr@2
   571
    TInt8 iType;
williamr@2
   572
    /**
williamr@2
   573
    * Signal strength in dBm. Given as absolute, correct value is negative.
williamr@2
   574
    */
williamr@2
   575
    TUint8 iSignalStrength;
williamr@2
   576
    };
williamr@2
   577
williamr@2
   578
/**
williamr@2
   579
* Class to contain an array of basic WLAN information.
williamr@2
   580
*/
williamr@2
   581
class TConnMonNetworkNames
williamr@2
   582
    {
williamr@2
   583
public:
williamr@2
   584
    /**
williamr@2
   585
    * Constructor.
williamr@2
   586
    */
williamr@2
   587
    inline TConnMonNetworkNames():iCount( 0 )
williamr@2
   588
        {
williamr@2
   589
        }
williamr@2
   590
    /**
williamr@2
   591
    * This method returns the number of WLANs contained in this class.
williamr@2
   592
    *
williamr@2
   593
    * @return Number of WLANs.
williamr@2
   594
    */
williamr@2
   595
    inline TUint Count()
williamr@2
   596
        {
williamr@2
   597
        return iCount;
williamr@2
   598
        }
williamr@2
   599
public:
williamr@2
   600
    /**
williamr@2
   601
    * Number of items in WLAN array.
williamr@2
   602
    */
williamr@2
   603
    TUint iCount;
williamr@2
   604
    /**
williamr@2
   605
    * Array of WLANs.
williamr@2
   606
    */
williamr@2
   607
    TConnMonNetwork iNetwork[KConnMonMaxNetworkCount];
williamr@2
   608
    };
williamr@2
   609
williamr@2
   610
/**
williamr@2
   611
* Package class definition for getting basic WLAN scan information.
williamr@2
   612
*/
williamr@2
   613
typedef TPckgBuf<TConnMonNetworkNames> TConnMonNetworkNamesBuf;
williamr@2
   614
williamr@2
   615
/** Maximum number of IAPs contained in TConnMonIapInfo class.
williamr@2
   616
*/
williamr@2
   617
const TUint KConnMonMaxIAPCount = 25;
williamr@2
   618
williamr@2
   619
/**
williamr@2
   620
* Class representing an IAP.
williamr@2
   621
*/
williamr@2
   622
class TConnMonIap
williamr@2
   623
    {
williamr@2
   624
public:
williamr@2
   625
    /**
williamr@2
   626
    * Constructor.
williamr@2
   627
    */
williamr@2
   628
    inline TConnMonIap():iIapId( 0 )
williamr@2
   629
        {
williamr@2
   630
        }
williamr@2
   631
public:
williamr@2
   632
    /**
williamr@2
   633
    * IAP ID number.
williamr@2
   634
    */
williamr@2
   635
    TUint iIapId;
williamr@2
   636
    };
williamr@2
   637
williamr@2
   638
/**
williamr@2
   639
* Class to contain an array of IAPs.
williamr@2
   640
*/
williamr@2
   641
class TConnMonIapInfo
williamr@2
   642
    {
williamr@2
   643
public:
williamr@2
   644
    /**
williamr@2
   645
    * Constructor.
williamr@2
   646
    */
williamr@2
   647
    inline TConnMonIapInfo():iCount( 0 )
williamr@2
   648
        {
williamr@2
   649
        }
williamr@2
   650
    /**
williamr@2
   651
    * This method returns the number of IAPs contained in this class.
williamr@2
   652
    *
williamr@2
   653
    * @return Number of IAPs.
williamr@2
   654
    */
williamr@2
   655
    inline TUint Count()
williamr@2
   656
        {
williamr@2
   657
        return iCount;
williamr@2
   658
        }
williamr@2
   659
public:
williamr@2
   660
    /**
williamr@2
   661
    * Number of items in IAP array.
williamr@2
   662
    */
williamr@2
   663
    TUint iCount;
williamr@2
   664
    /**
williamr@2
   665
    * Array of IAPs.
williamr@2
   666
    */
williamr@2
   667
    TConnMonIap iIap[KConnMonMaxIAPCount];
williamr@2
   668
    };
williamr@2
   669
williamr@2
   670
/** Package class definiton for getting available IAPs.
williamr@2
   671
*/
williamr@2
   672
typedef TPckgBuf<TConnMonIapInfo> TConnMonIapInfoBuf;
williamr@2
   673
williamr@2
   674
/** Maximum number of SNAPs contained in TConnMonSNAPInfo class.
williamr@2
   675
*/
williamr@2
   676
const TUint KConnMonMaxSNAPsCount = 25;
williamr@2
   677
williamr@2
   678
/**
williamr@2
   679
* Class representing a SNAP.
williamr@2
   680
*/
williamr@2
   681
class TConnMonSNAPId
williamr@2
   682
    {
williamr@2
   683
public:
williamr@2
   684
    /**
williamr@2
   685
    * Constructor.
williamr@2
   686
    */
williamr@2
   687
    inline TConnMonSNAPId():iSNAPId( 0 )
williamr@2
   688
        {
williamr@2
   689
        }
williamr@2
   690
public:
williamr@2
   691
    /**
williamr@2
   692
    * SNAP ID number.
williamr@2
   693
    */
williamr@2
   694
    TUint iSNAPId;
williamr@2
   695
    };
williamr@2
   696
williamr@2
   697
/**
williamr@2
   698
* Class to contain an array of SNAPs.
williamr@2
   699
*/
williamr@2
   700
class TConnMonSNAPInfo
williamr@2
   701
    {
williamr@2
   702
public:
williamr@2
   703
    /**
williamr@2
   704
    * Constructor.
williamr@2
   705
    */
williamr@2
   706
    inline TConnMonSNAPInfo():iCount( 0 )
williamr@2
   707
        {
williamr@2
   708
        }
williamr@2
   709
    /**
williamr@2
   710
    * This method returns the number of SNAPs contained in this class.
williamr@2
   711
    *
williamr@2
   712
    * @return Number of SNAPs.
williamr@2
   713
    */
williamr@2
   714
    inline TUint Count()
williamr@2
   715
        {
williamr@2
   716
        return iCount;
williamr@2
   717
        }
williamr@2
   718
public:
williamr@2
   719
    /**
williamr@2
   720
    * Number of items in SNAP array.
williamr@2
   721
    */
williamr@2
   722
    TUint iCount;
williamr@2
   723
    /**
williamr@2
   724
    * Array of SNAPs.
williamr@2
   725
    */
williamr@2
   726
    TConnMonSNAPId iSNAP[KConnMonMaxSNAPsCount];
williamr@2
   727
    };
williamr@2
   728
williamr@2
   729
/** Package class definiton for getting available SNAPs.
williamr@2
   730
*/
williamr@2
   731
typedef TPckgBuf<TConnMonSNAPInfo> TConnMonSNAPInfoBuf;
williamr@2
   732
williamr@2
   733
/**
williamr@2
   734
* Bearer group definition, new values will be added to the end of the
williamr@2
   735
* enumeration.
williamr@2
   736
*/
williamr@2
   737
enum TConnMonBearerGroup
williamr@2
   738
    {
williamr@2
   739
    EBearerGroupUnknown                    = 0,
williamr@2
   740
    EBearerGroupCellular                   = 0x00000001,
williamr@2
   741
    EBearerGroupNonCellular                = 0x00000002,
williamr@2
   742
    EBearerGroupCellularPacket             = 0x00000004,
williamr@2
   743
    EBearerGroupCircuitSwitched            = 0x00000008,
williamr@2
   744
    EBearerGroup2G                         = 0x00000010,
williamr@2
   745
    EBearerGroup2GPacket                   = 0x00000020,
williamr@2
   746
    EBearerGroup3G                         = 0x00000040,
williamr@2
   747
    EBearerGroup3GPacket                   = 0x00000080,
williamr@2
   748
    EBearerGroupHSPA                       = 0x00000100,
williamr@2
   749
    EBearerGroupLANBased                   = 0x00000200,
williamr@2
   750
    EBearerGroupWLAN                       = 0x00000400,
williamr@2
   751
    EBearerGroupIPOverConnectivityProtocol = 0x00000800,
williamr@2
   752
    EBearerGroupWired                      = 0x00001000,
williamr@2
   753
    EBearerGroupVirtual                    = 0x00002000
williamr@2
   754
    };
williamr@2
   755
williamr@2
   756
/**
williamr@2
   757
* Bearer definition, new values will be added to the end of the enumeration.
williamr@2
   758
* These are used if KBearerInfo attribute is set or in events if
williamr@2
   759
* KBearerGroupThreshold is set.
williamr@2
   760
*/
williamr@2
   761
enum TConnMonBearerInfo
williamr@2
   762
    {
williamr@2
   763
    EBearerInfoUnknown = 0,
williamr@2
   764
    EBearerInfoCSD,
williamr@2
   765
    EBearerInfoWCDMA,
williamr@2
   766
    EBearerInfoLAN,
williamr@2
   767
    EBearerInfoCDMA2000,
williamr@2
   768
    EBearerInfoGPRS,
williamr@2
   769
    EBearerInfoHSCSD,
williamr@2
   770
    EBearerInfoEdgeGPRS,
williamr@2
   771
    EBearerInfoWLAN,
williamr@2
   772
    EBearerInfoBluetooth,
williamr@2
   773
    EBearerInfoVirtual,
williamr@2
   774
    EBearerInfoVirtualVPN,
williamr@2
   775
    EBearerInfoWcdmaCSD,
williamr@2
   776
    EBearerInfoHSDPA,
williamr@2
   777
    EBearerInfoHSUPA,
williamr@2
   778
    EBearerInfoHSxPA
williamr@2
   779
    };
williamr@2
   780
williamr@2
   781
/**
williamr@2
   782
* Class to contain bearer group information.
williamr@2
   783
*/
williamr@2
   784
class TConnMonBearerGroupInfo
williamr@2
   785
    {
williamr@2
   786
public:
williamr@2
   787
    /**
williamr@2
   788
    * Constructor.
williamr@2
   789
    */
williamr@2
   790
    inline TConnMonBearerGroupInfo():
williamr@2
   791
            iInternal( ETrue ),
williamr@2
   792
            iBearerGroups( 0 ),
williamr@2
   793
            iBearerGroups2( 0 )
williamr@2
   794
        {
williamr@2
   795
        }
williamr@2
   796
public:
williamr@2
   797
    /**
williamr@2
   798
    * Connection is internal or external.
williamr@2
   799
    */
williamr@2
   800
    TBool iInternal;
williamr@2
   801
    /**
williamr@2
   802
    * Bearer group bitmask.
williamr@2
   803
    */
williamr@2
   804
    TUint iBearerGroups;
williamr@2
   805
    /**
williamr@2
   806
    * Reserved for future use.
williamr@2
   807
    */
williamr@2
   808
    TUint iBearerGroups2;
williamr@2
   809
    };
williamr@2
   810
williamr@2
   811
/** Package class definiton for getting bearer group information.
williamr@2
   812
*/
williamr@2
   813
typedef TPckgBuf<TConnMonBearerGroupInfo> TConnMonBearerGroupInfoBuf;
williamr@2
   814
williamr@2
   815
/**
williamr@2
   816
* Class to represent a WLAN. Used when reporting WLAN scan results back to a
williamr@2
   817
* client.
williamr@2
   818
*/
williamr@2
   819
NONSHARABLE_CLASS( CConnMonWlanNetwork ) : public CBase
williamr@2
   820
    {
williamr@2
   821
public:
williamr@2
   822
    /** Maximum length of a WLAN name (SSID).
williamr@2
   823
    */
williamr@2
   824
    static const TUint KMaxNameLength = 32;
williamr@2
   825
    /** WLAN BSSID length (mac address).
williamr@2
   826
    */
williamr@2
   827
    static const TUint KWlanBssId = 6;
williamr@2
   828
    /** Reserved for future use.
williamr@2
   829
    */
williamr@2
   830
    static const TUint KExtraCount = 10;
williamr@2
   831
williamr@2
   832
    /**
williamr@2
   833
    * Constructor.
williamr@2
   834
    *
williamr@2
   835
    * @param aName Name (SSID) of the network.
williamr@2
   836
    * @param aConnectionMode Mode of the network.
williamr@2
   837
    * @param aSignalStrength Signal strength of the network.
williamr@2
   838
    * @param aSecurityMode Security mode of the network.
williamr@2
   839
    * @param aBssId Mac address (BSSID) of the base station.
williamr@2
   840
    * @param aVendorData Not in use.
williamr@2
   841
    * @return Pointer to the created CConnMonWlanNetwork object.
williamr@2
   842
    */
williamr@2
   843
    IMPORT_C static CConnMonWlanNetwork* NewL(
williamr@2
   844
            const TBuf<KMaxNameLength>& aName,
williamr@2
   845
            TUint aConnectionMode,
williamr@2
   846
            TUint aSignalStrength,
williamr@2
   847
            TUint aSecurityMode,
williamr@2
   848
            const TBuf8<KWlanBssId>& aBssId,
williamr@2
   849
            const TDesC& aVendorData );
williamr@2
   850
williamr@2
   851
    /**
williamr@2
   852
    * Constructor.
williamr@2
   853
    *
williamr@2
   854
    * @return Pointer to the created empty CConnMonWlanNetwork object.
williamr@2
   855
    */
williamr@2
   856
    IMPORT_C static CConnMonWlanNetwork* NewL();
williamr@2
   857
williamr@2
   858
    /**
williamr@2
   859
    * Copy constructor.
williamr@2
   860
    *
williamr@2
   861
    * @param aConnMonWlanNetwork The object which is copied.
williamr@2
   862
    * @return Pointer to the created CConnMonWlanNetwork object.
williamr@2
   863
    */
williamr@2
   864
    IMPORT_C static CConnMonWlanNetwork* NewL(
williamr@2
   865
            CConnMonWlanNetwork& aConnMonWlanNetwork );
williamr@2
   866
williamr@2
   867
    /**
williamr@2
   868
    * Destructor.
williamr@2
   869
    */
williamr@2
   870
    IMPORT_C ~CConnMonWlanNetwork();
williamr@2
   871
williamr@2
   872
    /**
williamr@2
   873
    * Assignment operator.
williamr@2
   874
    *
williamr@2
   875
    * @param aConnMonWlanNetwork The object which is assigned.
williamr@2
   876
    */
williamr@2
   877
    IMPORT_C CConnMonWlanNetwork& operator=(
williamr@2
   878
            CConnMonWlanNetwork& aConnMonWlanNetwork );
williamr@2
   879
williamr@2
   880
    /**
williamr@2
   881
    * Compares two networks by signal strength.
williamr@2
   882
    *
williamr@2
   883
    * @param aFirst Reference to first WLAN object.
williamr@2
   884
    * @param aSecond Reference to second WLAN object.
williamr@2
   885
    * @return Result of the comparison, 1 if first is less than second, 0 if
williamr@2
   886
    * they are equal and -1 otherwise.
williamr@2
   887
    */
williamr@2
   888
    IMPORT_C static TInt CompareBySignal(
williamr@2
   889
            const CConnMonWlanNetwork& aFirst,
williamr@2
   890
            const CConnMonWlanNetwork& aSecond );
williamr@2
   891
williamr@2
   892
    /**
williamr@2
   893
    * Obtains the name (SSID) of the network.
williamr@2
   894
    *
williamr@2
   895
    * @return Name of the wlan network.
williamr@2
   896
    */
williamr@2
   897
    inline TBuf<KMaxNameLength> Name()
williamr@2
   898
        {
williamr@2
   899
        return iName;
williamr@2
   900
        }
williamr@2
   901
williamr@2
   902
    /**
williamr@2
   903
    * Obtains the connection mode of the network.
williamr@2
   904
    *
williamr@2
   905
    * @return Connection mode (defined in TConnMonNetworkMode).
williamr@2
   906
    */
williamr@2
   907
    inline TUint ConnectionMode()
williamr@2
   908
        {
williamr@2
   909
        return iConnectionMode;
williamr@2
   910
        }
williamr@2
   911
williamr@2
   912
    /**
williamr@2
   913
    * Obtains the signal strength of the network.
williamr@2
   914
    *
williamr@2
   915
    * @return Signal strength in dBm.
williamr@2
   916
    */
williamr@2
   917
    inline TUint SignalStrength()
williamr@2
   918
        {
williamr@2
   919
        return iSignalStrength;
williamr@2
   920
        }
williamr@2
   921
williamr@2
   922
    /**
williamr@2
   923
    * Obtains the security mode of the network.
williamr@2
   924
    *
williamr@2
   925
    * @return Security mode (defined in TConnMonSecurityMode).
williamr@2
   926
    */
williamr@2
   927
    inline TUint SecurityMode()
williamr@2
   928
        {
williamr@2
   929
        return iSecurityMode;
williamr@2
   930
        }
williamr@2
   931
williamr@2
   932
    /**
williamr@2
   933
    * Obtains the mac address (BSSID) of the base station.
williamr@2
   934
    *
williamr@2
   935
    * @return Mac address (BSSID).
williamr@2
   936
    */
williamr@2
   937
    inline TBuf8<KWlanBssId> WlanBssid()
williamr@2
   938
        {
williamr@2
   939
        return iWlanBssId;
williamr@2
   940
        }
williamr@2
   941
williamr@2
   942
    /**
williamr@2
   943
    * Obtains a pointer to vendor specific data buffer.
williamr@2
   944
    * Ownership of the data is NOT transferred. Not in use, use package
williamr@2
   945
    * attribute KWlanProbeRawBuffers instead.
williamr@2
   946
    *
williamr@2
   947
    * @return Pointer to vendor specific data if available.
williamr@2
   948
    */
williamr@2
   949
    inline HBufC* VendorData()
williamr@2
   950
        {
williamr@2
   951
        return iVendorData;
williamr@2
   952
        }
williamr@2
   953
williamr@2
   954
    /**
williamr@2
   955
    * Writes object of class CConnMonWlanNetwork to memory.
williamr@2
   956
    * Ownership of newly created buffer is transferred to caller.
williamr@2
   957
    *
williamr@2
   958
    * @return Pointer to heap descriptor. NULL if memory allocation failed.
williamr@2
   959
    */
williamr@2
   960
    IMPORT_C const HBufC* ToBuf() const;
williamr@2
   961
williamr@2
   962
    /**
williamr@2
   963
    * Reads object of class CConnMonWlanNetwork from memory.
williamr@2
   964
    *
williamr@2
   965
    * @param aPtrC Pointer to the beginning of the CConnMonWlanNetwork object
williamr@2
   966
    * in buffer.
williamr@2
   967
    * @param aConnMonWlanNetwork Pointer to CConnMonWlanNetwork object where
williamr@2
   968
    * unpacked contents are written.
williamr@2
   969
    * @return A Symbian OS error code.
williamr@2
   970
    */
williamr@2
   971
    IMPORT_C static TInt FromPtrC(
williamr@2
   972
            const TPtrC& aPtrC,
williamr@2
   973
            CConnMonWlanNetwork* aConnMonWlanNetwork );
williamr@2
   974
williamr@2
   975
private:
williamr@2
   976
    /**
williamr@2
   977
    * Constructor.
williamr@2
   978
    */
williamr@2
   979
    CConnMonWlanNetwork();
williamr@2
   980
williamr@2
   981
    /**
williamr@2
   982
    * Constructor.
williamr@2
   983
    *
williamr@2
   984
    * @param aName Name (SSID) of the network.
williamr@2
   985
    * @param aConnectionMode Mode of the network.
williamr@2
   986
    * @param aSignalStrength Signal strength of the network.
williamr@2
   987
    * @param aSecurityMode Security mode of the network.
williamr@2
   988
    * @param aBssId Mac address (BSSID) of the base station.
williamr@2
   989
    * @param aVendorData Not in use.
williamr@2
   990
    */
williamr@2
   991
    CConnMonWlanNetwork(
williamr@2
   992
            const TBuf<KMaxNameLength>& aName,
williamr@2
   993
            TUint aConnectionMode,
williamr@2
   994
            TUint aSignalStrength,
williamr@2
   995
            TUint aSecurityMode,
williamr@2
   996
            const TBuf8<KWlanBssId>& aBssId,
williamr@2
   997
            const TDesC& aVendorData );
williamr@2
   998
williamr@2
   999
    /**
williamr@2
  1000
    * Second-phase constructor.
williamr@2
  1001
    */
williamr@2
  1002
    void ConstructL();
williamr@2
  1003
williamr@2
  1004
private:
williamr@2
  1005
    TBuf<KMaxNameLength> iName;   // Network name
williamr@2
  1006
    TUint iConnectionMode;        // WLAN mode, see TConnMonNetworkMode
williamr@2
  1007
    TUint iSignalStrength;        // Signal strength in absolute dBm
williamr@2
  1008
    TUint iSecurityMode;          // See TConnMonSecurityMode
williamr@2
  1009
    TBuf8<KWlanBssId> iWlanBssId; // BSSID
williamr@2
  1010
    HBufC* iVendorData;           // For vendor specific data
williamr@2
  1011
    TUint iExtraBuf[KExtraCount]; // Reserved for future
williamr@2
  1012
    };
williamr@2
  1013
williamr@2
  1014
/** Class definition for a pointer array of CConnMonWlanNetwork objects.
williamr@2
  1015
*/
williamr@2
  1016
typedef RPointerArray<CConnMonWlanNetwork> RConnMonWlanNetworksPtrArray;
williamr@2
  1017
williamr@2
  1018
/**
williamr@2
  1019
* Class to contain a package of a pointer array of CConnMonWlanNetwork objects.
williamr@2
  1020
*/
williamr@2
  1021
class CConnMonWlanNetworksPtrArrayPckg : public CBase
williamr@2
  1022
    {
williamr@2
  1023
public:
williamr@2
  1024
    /**
williamr@2
  1025
    * Constructor. Constructs the package of an array of pointers to
williamr@2
  1026
    * CConnMonWlanNetwork objects on the heap.
williamr@2
  1027
    *
williamr@2
  1028
    * @param aRef Array of pointers to CConnMonWlanNetwork objects.
williamr@2
  1029
    * @param aBufSize Size of the buffer, intended to contain the package.
williamr@2
  1030
    */
williamr@2
  1031
    CConnMonWlanNetworksPtrArrayPckg(
williamr@2
  1032
            const RPointerArray<CConnMonWlanNetwork>& aRef,
williamr@2
  1033
            TUint aBufSize );
williamr@2
  1034
williamr@2
  1035
    /**
williamr@2
  1036
    * Constructor. Constructs an empty package on the heap.
williamr@2
  1037
    *
williamr@2
  1038
    * @param aBufSize Size of the buffer, intended to contain the package.
williamr@2
  1039
    */
williamr@2
  1040
    IMPORT_C CConnMonWlanNetworksPtrArrayPckg( TUint aBufSize );
williamr@2
  1041
williamr@2
  1042
    /**
williamr@2
  1043
    * Destructor.
williamr@2
  1044
    */
williamr@2
  1045
    IMPORT_C virtual ~CConnMonWlanNetworksPtrArrayPckg();
williamr@2
  1046
williamr@2
  1047
    /**
williamr@2
  1048
    * Unpacks the package to a pointer array of CConnMonWlanNetwork objects.
williamr@2
  1049
    *
williamr@2
  1050
    * @param aRef Array that will contain the pointers to unpacked objects.
williamr@2
  1051
    */
williamr@2
  1052
    IMPORT_C void UnpackToL( RPointerArray<CConnMonWlanNetwork>& aRef ) const;
williamr@2
  1053
williamr@2
  1054
    /**
williamr@2
  1055
    * Obtains a pointer to the package buffer.
williamr@2
  1056
    *
williamr@2
  1057
    * @return Pointer to the package buffer.
williamr@2
  1058
    */
williamr@2
  1059
    IMPORT_C HBufC* Buf() const;
williamr@2
  1060
williamr@2
  1061
private:
williamr@2
  1062
    /**
williamr@2
  1063
    * Pointer to the package Buffer on the heap.
williamr@2
  1064
    */
williamr@2
  1065
    HBufC* iBuf;
williamr@2
  1066
    };
williamr@2
  1067
williamr@2
  1068
/**
williamr@2
  1069
* Class to represent a WLAN beacon frame. Used when reporting WLAN scan
williamr@2
  1070
* results back to a client.
williamr@2
  1071
*/
williamr@2
  1072
NONSHARABLE_CLASS( CConnMonWlanProbeRawBuffer ) : public CBase
williamr@2
  1073
    {
williamr@2
  1074
    public:
williamr@2
  1075
    /**
williamr@2
  1076
    * Constructor.
williamr@2
  1077
    *
williamr@2
  1078
    * @param aRawBuffer Beacon frame buffer to be copied to this object.
williamr@2
  1079
    * @return Pointer to the created CConnMonWlanProbeRawBuffer object.
williamr@2
  1080
    */
williamr@2
  1081
    IMPORT_C static CConnMonWlanProbeRawBuffer* NewL(
williamr@2
  1082
            const HBufC8* aRawBuffer );
williamr@2
  1083
williamr@2
  1084
    /**
williamr@2
  1085
    * Constructor.
williamr@2
  1086
    *
williamr@2
  1087
    * @return Pointer to the created empty CConnMonWlanProbeRawBuffer object.
williamr@2
  1088
    */
williamr@2
  1089
    IMPORT_C static CConnMonWlanProbeRawBuffer* NewL();
williamr@2
  1090
williamr@2
  1091
    /**
williamr@2
  1092
    * Copy constructor.
williamr@2
  1093
    *
williamr@2
  1094
    * @param aConnMonWlanProbeRawBuffer The object which is copied.
williamr@2
  1095
    * @return Pointer to the created CConnMonWlanProbeRawBuffer object.
williamr@2
  1096
    */
williamr@2
  1097
    IMPORT_C static CConnMonWlanProbeRawBuffer* NewL(
williamr@2
  1098
            CConnMonWlanProbeRawBuffer& aConnMonWlanProbeRawBuffer );
williamr@2
  1099
williamr@2
  1100
    /**
williamr@2
  1101
    * Destructor.
williamr@2
  1102
    */
williamr@2
  1103
    IMPORT_C virtual ~CConnMonWlanProbeRawBuffer();
williamr@2
  1104
williamr@2
  1105
    /**
williamr@2
  1106
    * Assignment operator.
williamr@2
  1107
    *
williamr@2
  1108
    * @param aConnMonWlanProbeRawBuffer The object which is assigned.
williamr@2
  1109
    */
williamr@2
  1110
    IMPORT_C CConnMonWlanProbeRawBuffer& operator=(
williamr@2
  1111
            CConnMonWlanProbeRawBuffer& aConnMonWlanProbeRawBuffer );
williamr@2
  1112
williamr@2
  1113
    /**
williamr@2
  1114
    * Obtains a pointer to the beacon frame buffer.
williamr@2
  1115
    *
williamr@2
  1116
    * @return Pointer to the beacon frame buffer.
williamr@2
  1117
    */
williamr@2
  1118
    IMPORT_C HBufC8* RawBuffer() const;
williamr@2
  1119
williamr@2
  1120
    /**
williamr@2
  1121
    * Writes object of class CConnMonWlanProbeRawBuffer to memory.
williamr@2
  1122
    * Ownership of newly created buffer is transferred to caller.
williamr@2
  1123
    *
williamr@2
  1124
    * @return Pointer to heap descriptor, NULL if memory allocation failed.
williamr@2
  1125
    */
williamr@2
  1126
    const HBufC8* ToBuf() const;
williamr@2
  1127
williamr@2
  1128
    /**
williamr@2
  1129
    * Reads object of class CConnMonWlanProbeRawBuffer from memory.
williamr@2
  1130
    *
williamr@2
  1131
    * @param aPtrC Pointer to the beginning of the CConnMonWlanProbeRawBuffer
williamr@2
  1132
    * object in buffer.
williamr@2
  1133
    * @param aConnMonWlanProbeRawBuffer Pointer to CConnMonWlanProbeRawBuffer
williamr@2
  1134
    * object where unpacked contents are written.
williamr@2
  1135
    * @return A Symbian OS error code.
williamr@2
  1136
    */
williamr@2
  1137
    static TInt FromPtrC(
williamr@2
  1138
            const TPtrC8& aPtrC,
williamr@2
  1139
            CConnMonWlanProbeRawBuffer* aConnMonWlanProbeRawBuffer );
williamr@2
  1140
williamr@2
  1141
private:
williamr@2
  1142
    /**
williamr@2
  1143
    * Constructor.
williamr@2
  1144
    */
williamr@2
  1145
    CConnMonWlanProbeRawBuffer();
williamr@2
  1146
williamr@2
  1147
    /**
williamr@2
  1148
    * Second-phase constructor.
williamr@2
  1149
    */
williamr@2
  1150
    void ConstructL();
williamr@2
  1151
williamr@2
  1152
    /**
williamr@2
  1153
    * Second-phase constructor.
williamr@2
  1154
    *
williamr@2
  1155
    * @param aRawBuffer Buffer to be copied to this object.
williamr@2
  1156
    */
williamr@2
  1157
    void ConstructL( const HBufC8* aRawBuffer );
williamr@2
  1158
williamr@2
  1159
private:
williamr@2
  1160
    HBufC8* iRawBuffer; // Beacon frame buffer
williamr@2
  1161
    };
williamr@2
  1162
williamr@2
  1163
/** Class definition for a pointer array of CConnMonWlanProbeRawBuffer objects.
williamr@2
  1164
*/
williamr@2
  1165
typedef RPointerArray<CConnMonWlanProbeRawBuffer> RConnMonWlanProbeRawBuffersPtrArray;
williamr@2
  1166
williamr@2
  1167
/**
williamr@2
  1168
* Class to contain a package of a pointer array of CConnMonWlanProbeRawBuffer
williamr@2
  1169
* objects.
williamr@2
  1170
*/
williamr@2
  1171
class CConnMonWlanProbeRawBuffersPckg : public CBase
williamr@2
  1172
    {
williamr@2
  1173
public:
williamr@2
  1174
    /**
williamr@2
  1175
    * Constructor. Constructs the package of an array of pointers to
williamr@2
  1176
    * CConnMonWlanProbeRawBuffer objects on the heap.
williamr@2
  1177
    *
williamr@2
  1178
    * @param aRef Array of pointers to CConnMonWlanProbeRawBuffer objects.
williamr@2
  1179
    * @param aBufSize Size of the buffer, intended to contain the package.
williamr@2
  1180
    */
williamr@2
  1181
    CConnMonWlanProbeRawBuffersPckg(
williamr@2
  1182
            const RConnMonWlanProbeRawBuffersPtrArray& aRef,
williamr@2
  1183
            TUint aBufSize );
williamr@2
  1184
williamr@2
  1185
    /**
williamr@2
  1186
    * Constructor. Constructs an empty package on the heap.
williamr@2
  1187
    *
williamr@2
  1188
    * @param aBufSize Size of the buffer, intended to contain the package.
williamr@2
  1189
    */
williamr@2
  1190
    IMPORT_C CConnMonWlanProbeRawBuffersPckg( TUint aBufSize );
williamr@2
  1191
williamr@2
  1192
    /**
williamr@2
  1193
    * Destructor.
williamr@2
  1194
    */
williamr@2
  1195
    IMPORT_C virtual ~CConnMonWlanProbeRawBuffersPckg();
williamr@2
  1196
williamr@2
  1197
    /**
williamr@2
  1198
    * Unpacks the package to a pointer array of CConnMonWlanProbeRawBuffer
williamr@2
  1199
    * objects.
williamr@2
  1200
    *
williamr@2
  1201
    * @param aRef Array that will contain the pointers to unpacked objects.
williamr@2
  1202
    */
williamr@2
  1203
    IMPORT_C void UnpackToL( RConnMonWlanProbeRawBuffersPtrArray& aRef ) const;
williamr@2
  1204
williamr@2
  1205
    /**
williamr@2
  1206
    * Obtains a pointer to the package buffer.
williamr@2
  1207
    *
williamr@2
  1208
    * @return Pointer to the package buffer.
williamr@2
  1209
    */
williamr@2
  1210
    IMPORT_C HBufC8* Buf() const;
williamr@2
  1211
williamr@2
  1212
    /**
williamr@2
  1213
    * Obtains the total number of found WLANs.
williamr@2
  1214
    *
williamr@2
  1215
    * @return Total count (iBuf[0]).
williamr@2
  1216
    */
williamr@2
  1217
    IMPORT_C TUint Total() const;
williamr@2
  1218
williamr@2
  1219
    /**
williamr@2
  1220
    * Obtains the number of trasferred WLANs. This will be less than total
williamr@2
  1221
    * count if there was not enough memory in buffer to include all found
williamr@2
  1222
    * WLANs.
williamr@2
  1223
    *
williamr@2
  1224
    * @return Transfered count in buffer (iBuf[1]).
williamr@2
  1225
    */
williamr@2
  1226
    IMPORT_C TUint Count() const;
williamr@2
  1227
williamr@2
  1228
private:
williamr@2
  1229
    /**
williamr@2
  1230
    * Pointer to the package buffer on the heap.
williamr@2
  1231
    */
williamr@2
  1232
    HBufC8* iBuf;
williamr@2
  1233
    };
williamr@2
  1234
williamr@2
  1235
/**
williamr@2
  1236
* Interface template for the class T serialization to/from HBuf/TPtr.
williamr@2
  1237
* Class T could be any type of class (T, C, etc.).
williamr@2
  1238
*/
williamr@2
  1239
template <class T>
williamr@2
  1240
    class MDesSerializer
williamr@2
  1241
    {
williamr@2
  1242
public:
williamr@2
  1243
    /**
williamr@2
  1244
    * Have to pack the object of class T to HBufC.
williamr@2
  1245
    * Ownership of newly created pointer is transferred to caller.
williamr@2
  1246
    *
williamr@2
  1247
    * @return Pointer to the heap descriptor.
williamr@2
  1248
    */
williamr@2
  1249
    virtual const HBufC* ToBuf() const = 0;
williamr@2
  1250
williamr@2
  1251
    /**
williamr@2
  1252
    * Have to unpack object of class T from aPtrC.
williamr@2
  1253
    *
williamr@2
  1254
    * @return Constant pointer to the heap descriptor.
williamr@2
  1255
    */
williamr@2
  1256
    static T FromPtrC( const TPtrC& aPtrC );
williamr@2
  1257
    };
williamr@2
  1258
williamr@2
  1259
/**
williamr@2
  1260
* Class representing an ID number.
williamr@2
  1261
* MDesSerializer - abstract interface for class serialization.
williamr@2
  1262
*/
williamr@2
  1263
class TConnMonId : public MDesSerializer<TConnMonId>
williamr@2
  1264
    {
williamr@2
  1265
public:
williamr@2
  1266
    /**
williamr@2
  1267
    * Defines the maximum size of the object in TChar's.
williamr@2
  1268
    * +1 is for rounding to bigger integer.
williamr@2
  1269
    */
williamr@2
  1270
    static const TUint KMaxSize = ( sizeof( TUint ) ) / sizeof( TChar ) + 1;
williamr@2
  1271
williamr@2
  1272
    /**
williamr@2
  1273
    * Defines shifts of fields inside the object.
williamr@2
  1274
    */
williamr@2
  1275
    enum FieldsShifts
williamr@2
  1276
        {
williamr@2
  1277
        EId = 0
williamr@2
  1278
        };
williamr@2
  1279
williamr@2
  1280
    /**
williamr@2
  1281
    * Constructor.
williamr@2
  1282
    *
williamr@2
  1283
    * @param aId ID number.
williamr@2
  1284
    */
williamr@2
  1285
    IMPORT_C TConnMonId( TUint aId );
williamr@2
  1286
williamr@2
  1287
    /**
williamr@2
  1288
    * Obtains the ID number.
williamr@2
  1289
    *
williamr@2
  1290
    * @return ID number.
williamr@2
  1291
    */
williamr@2
  1292
    IMPORT_C TUint Id() const;
williamr@2
  1293
williamr@2
  1294
    // From MDesSerializer
williamr@2
  1295
williamr@2
  1296
    /**
williamr@2
  1297
    * Writes object of class TConnMonId to memory.
williamr@2
  1298
    * Ownership of newly created buffer is transferred to caller.
williamr@2
  1299
    *
williamr@2
  1300
    * @return Pointer to heap descriptor, NULL if memory allocation failed.
williamr@2
  1301
    */
williamr@2
  1302
    IMPORT_C const HBufC* ToBuf() const;
williamr@2
  1303
williamr@2
  1304
    /**
williamr@2
  1305
    * Reads object of class TConnMonId from memory.
williamr@2
  1306
    *
williamr@2
  1307
    * @param aPtrC Pointer to the beginning of the TConnMonId object in buffer.
williamr@2
  1308
    * @return The newly created TConnMonId object.
williamr@2
  1309
    */
williamr@2
  1310
    IMPORT_C static TConnMonId FromPtrC( const TPtrC& aPtrC );
williamr@2
  1311
williamr@2
  1312
protected:
williamr@2
  1313
    /**
williamr@2
  1314
    * ID number.
williamr@2
  1315
    */
williamr@2
  1316
    const TUint iId;
williamr@2
  1317
    };
williamr@2
  1318
williamr@2
  1319
/** Class definition for an array of TConnMonId objects.
williamr@2
  1320
*/
williamr@2
  1321
typedef RArray<TConnMonId> RConnMonIdsArray;
williamr@2
  1322
williamr@2
  1323
/**
williamr@2
  1324
* Class to contain a package of an array of TConnMonId objects.
williamr@2
  1325
*/
williamr@2
  1326
class ConnMonIdsArrayPckg
williamr@2
  1327
    {
williamr@2
  1328
public:
williamr@2
  1329
    /**
williamr@2
  1330
    * Constructor. Constructs the package of an array of TConnMonId objects
williamr@2
  1331
    * on the heap.
williamr@2
  1332
    *
williamr@2
  1333
    * @param aRef Array of TConnMonId objects.
williamr@2
  1334
    * @param aBufSize Size of the buffer, intended to contain the package.
williamr@2
  1335
    */
williamr@2
  1336
    ConnMonIdsArrayPckg( const RArray<TConnMonId>& aRef, TUint aBufSize );
williamr@2
  1337
williamr@2
  1338
    /**
williamr@2
  1339
    * Constructor. Constructs an empty package on the heap.
williamr@2
  1340
    *
williamr@2
  1341
    * @param aBufSize Size of the buffer, intended to contain the package.
williamr@2
  1342
    */
williamr@2
  1343
    IMPORT_C ConnMonIdsArrayPckg( TUint aBufSize );
williamr@2
  1344
williamr@2
  1345
    /**
williamr@2
  1346
    * Destructor.
williamr@2
  1347
    */
williamr@2
  1348
    IMPORT_C virtual ~ConnMonIdsArrayPckg();
williamr@2
  1349
williamr@2
  1350
    /**
williamr@2
  1351
    * Unpacks the package to an array of TConnMonId objects.
williamr@2
  1352
    *
williamr@2
  1353
    * @param aRef Array that will contain the unpacked objects.
williamr@2
  1354
    */
williamr@2
  1355
    IMPORT_C void UnpackToL( RArray<TConnMonId>& aRef ) const;
williamr@2
  1356
williamr@2
  1357
    /**
williamr@2
  1358
    * Obtains a pointer to the package buffer.
williamr@2
  1359
    *
williamr@2
  1360
    * @return Pointer to the package buffer.
williamr@2
  1361
    */
williamr@2
  1362
    IMPORT_C HBufC* Buf() const;
williamr@2
  1363
williamr@2
  1364
protected:
williamr@2
  1365
    /**
williamr@2
  1366
    * Pointer to the package buffer on the heap.
williamr@2
  1367
    */
williamr@2
  1368
    HBufC* iBuf;
williamr@2
  1369
    };
williamr@2
  1370
williamr@2
  1371
// Forward declarations
williamr@2
  1372
class CConnMonEventBase;
williamr@2
  1373
class CConnMonEventHandler;
williamr@2
  1374
williamr@2
  1375
/**
williamr@2
  1376
* Client application must implement the MConnectionMonitorObserver interface in
williamr@2
  1377
* order to receive notifications. MConnectionMonitorObserver::EventL() method
williamr@2
  1378
* will be called every time an event arrives.
williamr@2
  1379
*
williamr@2
  1380
* @lib CONNMON.LIB
williamr@2
  1381
*/
williamr@2
  1382
class MConnectionMonitorObserver
williamr@2
  1383
    {
williamr@2
  1384
public:
williamr@2
  1385
    /**
williamr@2
  1386
    * This method is called every time an event occurs.
williamr@2
  1387
    *
williamr@2
  1388
    * @param aConnMonEvent The event information.
williamr@2
  1389
    */
williamr@2
  1390
    virtual void EventL( const CConnMonEventBase &aConnMonEvent ) = 0;
williamr@2
  1391
    };
williamr@2
  1392
williamr@2
  1393
/**
williamr@2
  1394
* RConnectionMonitor
williamr@2
  1395
*
williamr@2
  1396
* @lib CONNMON.LIB
williamr@2
  1397
*/
williamr@2
  1398
class RConnectionMonitor : public RSessionBase
williamr@2
  1399
    {
williamr@2
  1400
public:
williamr@2
  1401
    /**
williamr@2
  1402
    * Constructor.
williamr@2
  1403
    */
williamr@2
  1404
    inline RConnectionMonitor():
williamr@2
  1405
            RSessionBase(),
williamr@2
  1406
            iHandler( 0 ),
williamr@2
  1407
            iPtrArray(),
williamr@2
  1408
            iIndex( 0 )
williamr@2
  1409
        {
williamr@2
  1410
        }
williamr@2
  1411
williamr@2
  1412
public:
williamr@2
  1413
    /**
williamr@2
  1414
    * Connects the client to the Connection Monitor Server. It must be called
williamr@2
  1415
    * before any of other methods during the Connection Monitor session.
williamr@2
  1416
    *
williamr@2
  1417
    * @return KErrNone if successful, a system-wide error code if not.
williamr@2
  1418
    */
williamr@2
  1419
    IMPORT_C TInt ConnectL();
williamr@2
  1420
williamr@2
  1421
    /**
williamr@2
  1422
    * Closes the Connection Monitor session. An opened RConnectionMonitor must
williamr@2
  1423
    * be closed explicitily to prevent a resource (memory) leak.
williamr@2
  1424
    */
williamr@2
  1425
    IMPORT_C void Close();
williamr@2
  1426
williamr@2
  1427
    /**
williamr@2
  1428
    * Gathers information on currently active connections.
williamr@2
  1429
    *
williamr@2
  1430
    * @param aConnectionCount On completion, contains the number of active
williamr@2
  1431
    * connections.
williamr@2
  1432
    * @param aStatus KErrNone if successful, a system-wide error code if not.
williamr@2
  1433
    */
williamr@2
  1434
    IMPORT_C void GetConnectionCount(
williamr@2
  1435
            TUint& aConnectionCount,
williamr@2
  1436
            TRequestStatus& aStatus );
williamr@2
  1437
williamr@2
  1438
    /**
williamr@2
  1439
    * Gets the connection ID and the count of the subconnections for the given
williamr@2
  1440
    * index. GetConnectionCount() must be called to gather the information on
williamr@2
  1441
    * active connections before calling this method.
williamr@2
  1442
    *
williamr@2
  1443
    * @param aIndex Must be between 1 and the count returned by
williamr@2
  1444
    * GetConnectionCount().
williamr@2
  1445
    * @param aConnectionId On return, contains the connection ID.
williamr@2
  1446
    * @param aSubConnectionCount On return, contains the number of
williamr@2
  1447
    * subconnections.
williamr@2
  1448
    * @return KErrNone if successful, a system-wide error code if not.
williamr@2
  1449
    */
williamr@2
  1450
    IMPORT_C TInt GetConnectionInfo(
williamr@2
  1451
            const TUint aIndex,
williamr@2
  1452
            TUint& aConnectionId,
williamr@2
  1453
            TUint& aSubConnectionCount ) const;
williamr@2
  1454
williamr@2
  1455
    /**
williamr@2
  1456
    * Gets the subconnection ID for the given index.
williamr@2
  1457
    *
williamr@2
  1458
    * @param aConnectionId Connection ID.
williamr@2
  1459
    * @param aIndex Must be between 1 and the subconnection count returned by
williamr@2
  1460
    * GetConnectionInfo().
williamr@2
  1461
    * @param aSubConnectionId On return, contains the subconnection ID.
williamr@2
  1462
    * @return KErrNone if successful, a system-wide error code if not.
williamr@2
  1463
    */
williamr@2
  1464
    IMPORT_C TInt GetSubConnectionInfo(
williamr@2
  1465
            const TUint aConnectionId,
williamr@2
  1466
            const TUint aIndex,
williamr@2
  1467
            TUint& aSubConnectionId ) const;
williamr@2
  1468
williamr@2
  1469
    /**
williamr@2
  1470
    * Gets the value for a TInt attribute.
williamr@2
  1471
    *
williamr@2
  1472
    * @param aConnectionId Connection ID.
williamr@2
  1473
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1474
    * connection.
williamr@2
  1475
    * @param aAttribute Identifies the attribute to be retrieved.
williamr@2
  1476
    * @param aValue On completion, contains the requested TInt attribute.
williamr@2
  1477
    * @param aStatus KErrNone if successful, a system-wide error code if not.
williamr@2
  1478
    */
williamr@2
  1479
    IMPORT_C void GetIntAttribute(
williamr@2
  1480
            const TUint aConnectionId,
williamr@2
  1481
            const TUint aSubConnectionId,
williamr@2
  1482
            const TUint aAttribute,
williamr@2
  1483
            TInt& aValue,
williamr@2
  1484
            TRequestStatus& aStatus );
williamr@2
  1485
williamr@2
  1486
    /**
williamr@2
  1487
    * Gets the value for a TUint attribute.
williamr@2
  1488
    *
williamr@2
  1489
    * @param aConnectionId Connection ID.
williamr@2
  1490
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1491
    * connection.
williamr@2
  1492
    * @param aAttribute Identifies the attribute to be retrieved.
williamr@2
  1493
    * @param aValue On completion, contains the requested TUint attribute.
williamr@2
  1494
    * @param aStatus KErrNone if successful, a system-wide error code if not.
williamr@2
  1495
    */
williamr@2
  1496
    IMPORT_C void GetUintAttribute(
williamr@2
  1497
            const TUint aConnectionId,
williamr@2
  1498
            const TUint aSubConnectionId,
williamr@2
  1499
            const TUint aAttribute,
williamr@2
  1500
            TUint& aValue,
williamr@2
  1501
            TRequestStatus& aStatus );
williamr@2
  1502
williamr@2
  1503
    /**
williamr@2
  1504
    * Gets the value for a TBool attribute.
williamr@2
  1505
    *
williamr@2
  1506
    * @param aConnectionId Connection ID.
williamr@2
  1507
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1508
    * connection.
williamr@2
  1509
    * @param aAttribute Identifies the attribute to be retrieved.
williamr@2
  1510
    * @param aValue On completion, contains the requested TBool attribute.
williamr@2
  1511
    * @param aStatus KErrNone if successful, a system-wide error code if not.
williamr@2
  1512
    */
williamr@2
  1513
    IMPORT_C void GetBoolAttribute(
williamr@2
  1514
            const TUint aConnectionId,
williamr@2
  1515
            const TUint aSubConnectionId,
williamr@2
  1516
            const TUint aAttribute,
williamr@2
  1517
            TBool& aValue,
williamr@2
  1518
            TRequestStatus& aStatus );
williamr@2
  1519
williamr@2
  1520
    /**
williamr@2
  1521
    * Gets the value for a string attribute.
williamr@2
  1522
    *
williamr@2
  1523
    * @param aConnectionId Connection ID.
williamr@2
  1524
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1525
    * connection.
williamr@2
  1526
    * @param aAttribute Identifies the attribute to be retrieved.
williamr@2
  1527
    * @param aValue On completion, contains the requested string. Use a 16-bit
williamr@2
  1528
    * descriptor!
williamr@2
  1529
    * @param aStatus KErrNone if successful, a system-wide error code if not.
williamr@2
  1530
    */
williamr@2
  1531
    IMPORT_C void GetStringAttribute(
williamr@2
  1532
            const TUint aConnectionId,
williamr@2
  1533
            const TUint aSubConnectionId,
williamr@2
  1534
            const TUint aAttribute,
williamr@2
  1535
            TDes& aValue,
williamr@2
  1536
            TRequestStatus& aStatus ) const;
williamr@2
  1537
williamr@2
  1538
    /**
williamr@2
  1539
    * Gets the value for a packaged attribute.
williamr@2
  1540
    *
williamr@2
  1541
    * @param aConnectionId Connection ID.
williamr@2
  1542
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1543
    * connection.
williamr@2
  1544
    * @param aAttribute Identifies the attribute to be retrieved.
williamr@2
  1545
    * @param aValue On completion, contains the requested packaged attribute.
williamr@2
  1546
    * @param aStatus KErrNone if successful, a system-wide error code if not.
williamr@2
  1547
    */
williamr@2
  1548
    IMPORT_C void GetPckgAttribute(
williamr@2
  1549
            const TUint aConnectionId,
williamr@2
  1550
            const TUint aSubConnectionId,
williamr@2
  1551
            const TUint aAttribute,
williamr@2
  1552
            TDes8& aValue,
williamr@2
  1553
            TRequestStatus& aStatus ) const;
williamr@2
  1554
williamr@2
  1555
    /**
williamr@2
  1556
    * Gets the value for a packaged attribute.
williamr@2
  1557
    *
williamr@2
  1558
    * @param aConnectionId Connection ID.
williamr@2
  1559
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1560
    * connection.
williamr@2
  1561
    * @param aAttribute Identifies the attribute to be retrieved.
williamr@2
  1562
    * @param aValue On completion, contains the requested packaged attribute.
williamr@2
  1563
    * @param aStatus KErrNone if successful, a system-wide error code if not.
williamr@2
  1564
    */
williamr@2
  1565
    IMPORT_C void GetPckgAttribute(
williamr@2
  1566
            const TUint aConnectionId,
williamr@2
  1567
            const TUint aSubConnectionId,
williamr@2
  1568
            const TUint aAttribute,
williamr@2
  1569
            TDes16& aValue,
williamr@2
  1570
            TRequestStatus& aStatus ) const;
williamr@2
  1571
williamr@2
  1572
    /**
williamr@2
  1573
    * Sets the value for a TInt attribute.
williamr@2
  1574
    *
williamr@2
  1575
    * @param aConnectionId Connection ID.
williamr@2
  1576
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1577
    * connection.
williamr@2
  1578
    * @param aAttribute Identifies the attribute to be set.
williamr@2
  1579
    * @param aValue The value to be set.
williamr@2
  1580
    * @return KErrNone if successful, a system-wide error code if not.
williamr@2
  1581
    */
williamr@2
  1582
    IMPORT_C TInt SetIntAttribute(
williamr@2
  1583
            const TUint aConnectionId,
williamr@2
  1584
            const TUint aSubConnectionId,
williamr@2
  1585
            const TUint aAttribute,
williamr@2
  1586
            const TInt aValue ) const;
williamr@2
  1587
williamr@2
  1588
    /**
williamr@2
  1589
    * Sets the value for a TUint attribute.
williamr@2
  1590
    *
williamr@2
  1591
    * @param aConnectionId Connection ID.
williamr@2
  1592
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1593
    * connection.
williamr@2
  1594
    * @param aAttribute Identifies the attribute to be set.
williamr@2
  1595
    * @param aValue The value to be set.
williamr@2
  1596
    * @return KErrNone if successful, a system-wide error code if not.
williamr@2
  1597
    */
williamr@2
  1598
    IMPORT_C TInt SetUintAttribute(
williamr@2
  1599
            const TUint aConnectionId,
williamr@2
  1600
            const TUint aSubConnectionId,
williamr@2
  1601
            const TUint aAttribute,
williamr@2
  1602
            const TUint aValue ) const;
williamr@2
  1603
williamr@2
  1604
    /**
williamr@2
  1605
    * Sets the value for a TBool attribute.
williamr@2
  1606
    *
williamr@2
  1607
    * This method can be used to stop a connection (KConnectionStop).
williamr@2
  1608
    * @param aConnectionId Connection ID.
williamr@2
  1609
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1610
    * connection.
williamr@2
  1611
    * @param aAttribute Identifies the attribute to be set.
williamr@2
  1612
    * @param aValue The value to be set.
williamr@2
  1613
    * @return KErrNone if successful, a system-wide error code if not.
williamr@2
  1614
    */
williamr@2
  1615
    IMPORT_C TInt SetBoolAttribute(
williamr@2
  1616
            const TUint aConnectionId,
williamr@2
  1617
            const TUint aSubConnectionId,
williamr@2
  1618
            const TUint aAttribute,
williamr@2
  1619
            const TBool aValue ) const;
williamr@2
  1620
williamr@2
  1621
    /**
williamr@2
  1622
    * Sets the value for a string attribute.
williamr@2
  1623
    *
williamr@2
  1624
    * @param aConnectionId Connection ID.
williamr@2
  1625
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1626
    * connection.
williamr@2
  1627
    * @param aAttribute Identifies the attribute to be set.
williamr@2
  1628
    * @param aValue The string value to be set. Must be a 16-bit descriptor.
williamr@2
  1629
    * @return KErrNone if successful, a system-wide error code if not.
williamr@2
  1630
    */
williamr@2
  1631
    IMPORT_C TInt SetStringAttribute(
williamr@2
  1632
            const TUint aConnectionId,
williamr@2
  1633
            const TUint aSubConnectionId,
williamr@2
  1634
            const TUint aAttribute,
williamr@2
  1635
            const TDes& aValue ) const;
williamr@2
  1636
williamr@2
  1637
    /**
williamr@2
  1638
    * Sets the value for a packaged attribute. There is currently no packaged
williamr@2
  1639
    * attributes that can be set.
williamr@2
  1640
    *
williamr@2
  1641
    * @param aConnectionId Connection ID.
williamr@2
  1642
    * @param aSubConnectionId Subconnection ID. If set to 0, method applies to
williamr@2
  1643
    * connection.
williamr@2
  1644
    * @param aAttribute Identifies the attribute to be set.
williamr@2
  1645
    * @param aValue The value to be set.
williamr@2
  1646
    * @return KErrNone if successful, a system-wide error code if not.
williamr@2
  1647
    */
williamr@2
  1648
    IMPORT_C TInt SetPckgAttribute(
williamr@2
  1649
            const TUint aConnectionId,
williamr@2
  1650
            const TUint aSubConnectionId,
williamr@2
  1651
            const TUint aAttribute,
williamr@2
  1652
            const TDes8& aValue ) const;
williamr@2
  1653
williamr@2
  1654
    /**
williamr@2
  1655
    * Cancels an asyncronous request. If there is several active requests of
williamr@2
  1656
    * the same type (for example GetIntAttribute), they will all be cancelled.
williamr@2
  1657
    * When a request is cancelled, it is completed with error code KErrCancel.
williamr@2
  1658
    *
williamr@2
  1659
    * @param aReqToCancel Identifies the request type to be cancelled.
williamr@2
  1660
    * The different types are defined in TConnMonAsyncRequest.
williamr@2
  1661
    */
williamr@2
  1662
    IMPORT_C void CancelAsyncRequest( TInt aReqToCancel );
williamr@2
  1663
williamr@2
  1664
    /**
williamr@2
  1665
    * Registers an event observer to catch connection monitor events.
williamr@2
  1666
    *
williamr@2
  1667
    * @param aObserver The event observer.
williamr@2
  1668
    * @return KErrNone if successful, a system-wide error code if not.
williamr@2
  1669
    */
williamr@2
  1670
    IMPORT_C TInt NotifyEventL( MConnectionMonitorObserver& aObserver );
williamr@2
  1671
williamr@2
  1672
    /**
williamr@2
  1673
    * Cancels the notifications from connection monitor.
williamr@2
  1674
    */
williamr@2
  1675
    IMPORT_C void CancelNotifications();
williamr@2
  1676
williamr@2
  1677
private:
williamr@2
  1678
    void ReceiveEvent(
williamr@2
  1679
            TDes8& aBuffer,
williamr@2
  1680
            TDes8& aExtraBuf,
williamr@2
  1681
            TRequestStatus& aStatus );
williamr@2
  1682
    void CancelReceiveEvent();
williamr@2
  1683
    TBool IsConnected() const;
williamr@2
  1684
    TPtr8& NextPtr();
williamr@2
  1685
williamr@2
  1686
private:
williamr@2
  1687
    CConnMonEventHandler* iHandler;
williamr@2
  1688
    RArray<TPtr8> iPtrArray;
williamr@2
  1689
    TInt iIndex;
williamr@2
  1690
williamr@2
  1691
private:
williamr@2
  1692
    friend class CConnMonEventHandler;
williamr@2
  1693
    };
williamr@2
  1694
williamr@2
  1695
/**
williamr@2
  1696
* Base class for all ConnMon event types.
williamr@2
  1697
*
williamr@2
  1698
* Example how to convert an event according to type.
williamr@2
  1699
* @code
williamr@2
  1700
* void CMyConnMonObserver::EventL( const CConnMonEventBase& aEvent )
williamr@2
  1701
*     {
williamr@2
  1702
*     switch( aEvent.EventType() )
williamr@2
  1703
*         {
williamr@2
  1704
*         case EConnMonCreateConnection:
williamr@2
  1705
*             CConnMonCreateConnection* realEvent;
williamr@2
  1706
*             realEvent = (CConnMonCreateConnection*) &aEvent;
williamr@2
  1707
*             //...
williamr@2
  1708
* @endcode
williamr@2
  1709
*/
williamr@2
  1710
NONSHARABLE_CLASS( CConnMonEventBase ) : public CBase
williamr@2
  1711
    {
williamr@2
  1712
public:
williamr@2
  1713
    /**
williamr@2
  1714
    * Constructor.
williamr@2
  1715
    *
williamr@2
  1716
    * @param aEventType Event type.
williamr@2
  1717
    * @param iConnectionId Connection ID.
williamr@2
  1718
    */
williamr@2
  1719
    CConnMonEventBase( const TInt aEventType, const TUint iConnectionId );
williamr@2
  1720
williamr@2
  1721
    /**
williamr@2
  1722
    * Destructor.
williamr@2
  1723
    */
williamr@2
  1724
    ~CConnMonEventBase();
williamr@2
  1725
williamr@2
  1726
public:
williamr@2
  1727
    /**
williamr@2
  1728
    * Gets the type of the event.
williamr@2
  1729
    *
williamr@2
  1730
    * @return Type of the event. Values are defined in TConnMonEventType.
williamr@2
  1731
    */
williamr@2
  1732
    IMPORT_C TInt EventType() const;
williamr@2
  1733
williamr@2
  1734
    /**
williamr@2
  1735
    * Gets the connection ID of the connection.
williamr@2
  1736
    *
williamr@2
  1737
    * @return Connection ID.
williamr@2
  1738
    */
williamr@2
  1739
    IMPORT_C TUint ConnectionId() const;
williamr@2
  1740
williamr@2
  1741
private:
williamr@2
  1742
    TInt iEventType;
williamr@2
  1743
    TUint iConnectionId;
williamr@2
  1744
    };
williamr@2
  1745
williamr@2
  1746
/**
williamr@2
  1747
* This event is triggered when a new connection has been created. The
williamr@2
  1748
* connection ID passed in the event is a new ID number that ConnMon assigned to
williamr@2
  1749
* the new connection.
williamr@2
  1750
*
williamr@2
  1751
* @lib CONNMON.LIB
williamr@2
  1752
*/
williamr@2
  1753
NONSHARABLE_CLASS( CConnMonCreateConnection ) : public CConnMonEventBase
williamr@2
  1754
    {
williamr@2
  1755
public:
williamr@2
  1756
    /**
williamr@2
  1757
    * Constructor.
williamr@2
  1758
    *
williamr@2
  1759
    * @param aConnectionId Connection ID.
williamr@2
  1760
    */
williamr@2
  1761
    CConnMonCreateConnection( const TUint aConnectionId );
williamr@2
  1762
williamr@2
  1763
    /**
williamr@2
  1764
    * Destructor.
williamr@2
  1765
    */
williamr@2
  1766
    ~CConnMonCreateConnection();
williamr@2
  1767
    };
williamr@2
  1768
williamr@2
  1769
/**
williamr@2
  1770
* This event is triggered when a connection has been deleted. The connection ID
williamr@2
  1771
* passed in the event is the connection ID of the deleted connection.
williamr@2
  1772
*
williamr@2
  1773
* @lib CONNMON.LIB
williamr@2
  1774
*/
williamr@2
  1775
NONSHARABLE_CLASS( CConnMonDeleteConnection ) : public CConnMonEventBase
williamr@2
  1776
    {
williamr@2
  1777
public:
williamr@2
  1778
    /**
williamr@2
  1779
    * Constructor.
williamr@2
  1780
    *
williamr@2
  1781
    * @param aConnectionId Connection ID.
williamr@2
  1782
    * @param aDownlinkData Downlink data volume.
williamr@2
  1783
    * @param aUplinkData Uplink data volume.
williamr@2
  1784
    * @param aAuthDelete Was connection stopped in an authoritative way.
williamr@2
  1785
    */
williamr@2
  1786
    CConnMonDeleteConnection(
williamr@2
  1787
            const TUint aConnectionId,
williamr@2
  1788
            const TUint aDownlinkData,
williamr@2
  1789
            const TUint aUplinkData,
williamr@2
  1790
            const TBool aAuthDelete );
williamr@2
  1791
williamr@2
  1792
    /**
williamr@2
  1793
    * Destructor.
williamr@2
  1794
    */
williamr@2
  1795
    ~CConnMonDeleteConnection();
williamr@2
  1796
williamr@2
  1797
public:
williamr@2
  1798
    /**
williamr@2
  1799
    * Gets the downlink data volume.
williamr@2
  1800
    *
williamr@2
  1801
    * @return Downlink data volume in bytes.
williamr@2
  1802
    */
williamr@2
  1803
    IMPORT_C TUint DownlinkData() const;
williamr@2
  1804
williamr@2
  1805
    /**
williamr@2
  1806
    * Gets the uplink data volume.
williamr@2
  1807
    *
williamr@2
  1808
    * @return Uplink data volume in bytes.
williamr@2
  1809
    */
williamr@2
  1810
    IMPORT_C TUint UplinkData() const;
williamr@2
  1811
williamr@2
  1812
    /**
williamr@2
  1813
    * Checks if the connection was stopped in an authoritative way.
williamr@2
  1814
    * ETrue will be returned if the user has deactivated the connection by
williamr@2
  1815
    * using Connection Monitor or if some application has issued
williamr@2
  1816
    * RConnection::Stop( RConnection::EStopAuthoritative ).
williamr@2
  1817
    *
williamr@2
  1818
    * @return ETrue if connection has been deactivated in an authoritative
williamr@2
  1819
    * way, otherwise returns EFalse.
williamr@2
  1820
    */
williamr@2
  1821
    IMPORT_C TBool AuthoritativeDelete() const;
williamr@2
  1822
williamr@2
  1823
private:
williamr@2
  1824
    TUint iDownlinkData;
williamr@2
  1825
    TUint iUplinkData;
williamr@2
  1826
    TBool iAuthDelete;
williamr@2
  1827
    };
williamr@2
  1828
williamr@2
  1829
/**
williamr@2
  1830
* This event is triggered when a new subconnection has been created.
williamr@2
  1831
* Subconnections are not supported currently.
williamr@2
  1832
*
williamr@2
  1833
* @lib CONNMON.LIB
williamr@2
  1834
*/
williamr@2
  1835
NONSHARABLE_CLASS( CConnMonCreateSubConnection ) : public CConnMonEventBase
williamr@2
  1836
    {
williamr@2
  1837
public:
williamr@2
  1838
    /**
williamr@2
  1839
    * Constructor.
williamr@2
  1840
    *
williamr@2
  1841
    * @param aConnectionId Connection ID.
williamr@2
  1842
    * @param aSubConnectionId Subconnection ID.
williamr@2
  1843
    */
williamr@2
  1844
    CConnMonCreateSubConnection(
williamr@2
  1845
            const TUint aConnectionId,
williamr@2
  1846
            const TUint aSubConnectionId );
williamr@2
  1847
williamr@2
  1848
    /**
williamr@2
  1849
    * Destructor.
williamr@2
  1850
    */
williamr@2
  1851
    ~CConnMonCreateSubConnection();
williamr@2
  1852
williamr@2
  1853
public:
williamr@2
  1854
    /**
williamr@2
  1855
    * Gets the new subconnection ID.
williamr@2
  1856
    *
williamr@2
  1857
    * @return Subconnection ID.
williamr@2
  1858
    */
williamr@2
  1859
    IMPORT_C TUint SubConnectionId() const;
williamr@2
  1860
williamr@2
  1861
private:
williamr@2
  1862
    TUint iSubConnectionId;
williamr@2
  1863
    };
williamr@2
  1864
williamr@2
  1865
/**
williamr@2
  1866
* This event is triggered when a subconnection has been deleted.
williamr@2
  1867
* Subconnections are not supported currently.
williamr@2
  1868
*
williamr@2
  1869
* @lib CONNMON.LIB
williamr@2
  1870
*/
williamr@2
  1871
NONSHARABLE_CLASS( CConnMonDeleteSubConnection ) : public CConnMonEventBase
williamr@2
  1872
    {
williamr@2
  1873
public:
williamr@2
  1874
    /**
williamr@2
  1875
    * Constructor.
williamr@2
  1876
    *
williamr@2
  1877
    * @param aConnectionId Connection ID.
williamr@2
  1878
    * @param aSubConnectionId Subconnection ID.
williamr@2
  1879
    * @param aDownlinkData Downlink data volume.
williamr@2
  1880
    * @param aUplinkData Uplink data volume.
williamr@2
  1881
    * @param aAuthDelete Was connection stopped in an authoritative way.
williamr@2
  1882
    */
williamr@2
  1883
    CConnMonDeleteSubConnection(
williamr@2
  1884
            const TUint aConnectionId,
williamr@2
  1885
            const TUint aSubConnectionId,
williamr@2
  1886
            const TUint aDownlinkData,
williamr@2
  1887
            const TUint aUplinkData,
williamr@2
  1888
            const TBool aAuthDelete );
williamr@2
  1889
williamr@2
  1890
    /**
williamr@2
  1891
    * Destructor.
williamr@2
  1892
    */
williamr@2
  1893
    ~CConnMonDeleteSubConnection();
williamr@2
  1894
williamr@2
  1895
public:
williamr@2
  1896
    /**
williamr@2
  1897
    * Gets the subconnection ID of the deleted subconnection.
williamr@2
  1898
    *
williamr@2
  1899
    * @return Subconnection ID.
williamr@2
  1900
    */
williamr@2
  1901
    IMPORT_C TUint SubConnectionId() const;
williamr@2
  1902
williamr@2
  1903
    /**
williamr@2
  1904
    * Gets the downlink data volume.
williamr@2
  1905
    *
williamr@2
  1906
    * @return Downlink data volume in bytes.
williamr@2
  1907
    */
williamr@2
  1908
    IMPORT_C TUint DownlinkData() const;
williamr@2
  1909
williamr@2
  1910
    /**
williamr@2
  1911
    * Gets the uplink data volume.
williamr@2
  1912
    *
williamr@2
  1913
    * @return Uplink data volume in bytes.
williamr@2
  1914
    */
williamr@2
  1915
    IMPORT_C TUint UplinkData() const;
williamr@2
  1916
williamr@2
  1917
    /**
williamr@2
  1918
    * Checks if the connection was stopped in an authoritative way.
williamr@2
  1919
    * ETrue will be returned if the user has deactivated the connection by
williamr@2
  1920
    * using Connection Monitor or if some application has issued
williamr@2
  1921
    * RConnection::Stop( RConnection::EStopAuthoritative ).
williamr@2
  1922
    *
williamr@2
  1923
    * @return ETrue if connection has been deactivated in an authoritative
williamr@2
  1924
    * way, otherwise returns EFalse.
williamr@2
  1925
    */
williamr@2
  1926
    IMPORT_C TBool AuthoritativeDelete() const;
williamr@2
  1927
williamr@2
  1928
private:
williamr@2
  1929
    TUint iSubConnectionId;
williamr@2
  1930
    TUint iDownlinkData;
williamr@2
  1931
    TUint iUplinkData;
williamr@2
  1932
    TBool iAuthDelete;
williamr@2
  1933
    };
williamr@2
  1934
williamr@2
  1935
/**
williamr@2
  1936
* This event is triggered when there is a sufficient change in the volume of
williamr@2
  1937
* downlink data for a specific connection. The event is sent each time a client
williamr@2
  1938
* specified amount (KDownlinkDataThreshold) of new data has been sent. If
williamr@2
  1939
* another ConnMon client has requested for these events for the same
williamr@2
  1940
* connection, the smallest threshold value will be used globally. If
williamr@2
  1941
* KDownlinkDataThreshold is 0 (default), events will not be sent for that
williamr@2
  1942
* connection. To prevent rapid flooding of these events, different bearers have
williamr@2
  1943
* appropriate minimum threshold values which will be used to override too small
williamr@2
  1944
* thresholds when necessary.
williamr@2
  1945
*
williamr@2
  1946
* @lib CONNMON.LIB
williamr@2
  1947
*/
williamr@2
  1948
NONSHARABLE_CLASS( CConnMonDownlinkDataThreshold ) : public CConnMonEventBase
williamr@2
  1949
    {
williamr@2
  1950
public:
williamr@2
  1951
    /**
williamr@2
  1952
    * Constructor.
williamr@2
  1953
    *
williamr@2
  1954
    * @param aConnectionId Connection ID.
williamr@2
  1955
    * @param aSubConnectionId Subconnection ID.
williamr@2
  1956
    * @param aDownlinkData Downlink data volume.
williamr@2
  1957
    */
williamr@2
  1958
    CConnMonDownlinkDataThreshold(
williamr@2
  1959
            const TUint aConnectionId,
williamr@2
  1960
            const TUint aSubConnectionId,
williamr@2
  1961
            const TUint aDownlinkData );
williamr@2
  1962
williamr@2
  1963
    /**
williamr@2
  1964
    * Destructor.
williamr@2
  1965
    */
williamr@2
  1966
    ~CConnMonDownlinkDataThreshold();
williamr@2
  1967
williamr@2
  1968
public:
williamr@2
  1969
    /**
williamr@2
  1970
    * Gets the subconnection ID.
williamr@2
  1971
    *
williamr@2
  1972
    * @return Subconnection ID.
williamr@2
  1973
    */
williamr@2
  1974
    IMPORT_C TUint SubConnectionId() const;
williamr@2
  1975
williamr@2
  1976
    /**
williamr@2
  1977
    * Gets the downlink data volume.
williamr@2
  1978
    *
williamr@2
  1979
    * @return Downlink data volume in bytes.
williamr@2
  1980
    */
williamr@2
  1981
    IMPORT_C TUint DownlinkData() const;
williamr@2
  1982
williamr@2
  1983
private:
williamr@2
  1984
    TUint iSubConnectionId;
williamr@2
  1985
    TUint iDownlinkData;
williamr@2
  1986
    };
williamr@2
  1987
williamr@2
  1988
/**
williamr@2
  1989
* This event is triggered when there is a sufficient change in the volume of
williamr@2
  1990
* uplink data for a specific connection. The event is sent each time a client
williamr@2
  1991
* specified amount (KUplinkDataThreshold) of new data has been received. If
williamr@2
  1992
* another ConnMon client has requested for these events for the same
williamr@2
  1993
* connection, the smallest threshold value will be used globally. If
williamr@2
  1994
* KUplinkDataThreshold is 0 (default), events will not be sent for that
williamr@2
  1995
* connection. To prevent rapid flooding of these events, different bearers have
williamr@2
  1996
* appropriate minimum threshold values which will be used to override too small
williamr@2
  1997
* thresholds when necessary.
williamr@2
  1998
*
williamr@2
  1999
* @lib CONNMON.LIB
williamr@2
  2000
*/
williamr@2
  2001
NONSHARABLE_CLASS( CConnMonUplinkDataThreshold ) : public CConnMonEventBase
williamr@2
  2002
    {
williamr@2
  2003
public:
williamr@2
  2004
    /**
williamr@2
  2005
    * Constructor.
williamr@2
  2006
    *
williamr@2
  2007
    * @param aConnectionId Connection ID.
williamr@2
  2008
    * @param aSubConnectionId Subconnection ID.
williamr@2
  2009
    * @param aUplinkData Uplink data volume.
williamr@2
  2010
    */
williamr@2
  2011
    CConnMonUplinkDataThreshold(
williamr@2
  2012
            const TUint aConnectionId,
williamr@2
  2013
            const TUint aSubConnectionId,
williamr@2
  2014
            const TUint aUplinkData );
williamr@2
  2015
williamr@2
  2016
    /**
williamr@2
  2017
    * Destructor.
williamr@2
  2018
    */
williamr@2
  2019
    ~CConnMonUplinkDataThreshold();
williamr@2
  2020
williamr@2
  2021
public:
williamr@2
  2022
    /**
williamr@2
  2023
    * Gets the subconnection ID.
williamr@2
  2024
    *
williamr@2
  2025
    * @return Subconnection ID.
williamr@2
  2026
    */
williamr@2
  2027
    IMPORT_C TUint SubConnectionId() const;
williamr@2
  2028
williamr@2
  2029
    /**
williamr@2
  2030
    * Gets the uplink data volume.
williamr@2
  2031
    *
williamr@2
  2032
    * @return Uplink data volume in bytes.
williamr@2
  2033
    */
williamr@2
  2034
    IMPORT_C TUint UplinkData() const;
williamr@2
  2035
williamr@2
  2036
private:
williamr@2
  2037
    TUint iSubConnectionId;
williamr@2
  2038
    TUint iUplinkData;
williamr@2
  2039
    };
williamr@2
  2040
williamr@2
  2041
/**
williamr@2
  2042
* This event is triggered when network status changes for some packet data
williamr@2
  2043
* connection. The connection ID passed in the event is a bearer specific
williamr@2
  2044
* connection ID (see TConnMonBearerId). The same information can be retrieved
williamr@2
  2045
* with TInt attribute KNetworkStatus.
williamr@2
  2046
*
williamr@2
  2047
* @lib CONNMON.LIB
williamr@2
  2048
*/
williamr@2
  2049
NONSHARABLE_CLASS( CConnMonNetworkStatusChange ) : public CConnMonEventBase
williamr@2
  2050
    {
williamr@2
  2051
public:
williamr@2
  2052
    /**
williamr@2
  2053
    * Constructor.
williamr@2
  2054
    *
williamr@2
  2055
    * @param aConnectionId Connection ID.
williamr@2
  2056
    * @param aNetworkStatus Network status.
williamr@2
  2057
    */
williamr@2
  2058
    CConnMonNetworkStatusChange(
williamr@2
  2059
            const TUint aConnectionId,
williamr@2
  2060
            const TInt aNetworkStatus );
williamr@2
  2061
williamr@2
  2062
    /**
williamr@2
  2063
    * Destructor.
williamr@2
  2064
    */
williamr@2
  2065
    ~CConnMonNetworkStatusChange();
williamr@2
  2066
williamr@2
  2067
public:
williamr@2
  2068
    /**
williamr@2
  2069
    * Gets the network status.
williamr@2
  2070
    *
williamr@2
  2071
    * @return Network status. Values are defined in TConnMonNetworkStatus.
williamr@2
  2072
    */
williamr@2
  2073
    IMPORT_C TInt NetworkStatus() const;
williamr@2
  2074
williamr@2
  2075
private:
williamr@2
  2076
    TInt iNetworkStatus;
williamr@2
  2077
    };
williamr@2
  2078
williamr@2
  2079
/**
williamr@2
  2080
* This event is triggered when the status of some connection changes.
williamr@2
  2081
* The same information can be retrieved with TInt attribute KConnectionStatus.
williamr@2
  2082
* Connection status values are defined in nifvar.h.
williamr@2
  2083
*
williamr@2
  2084
* @lib CONNMON.LIB
williamr@2
  2085
*/
williamr@2
  2086
NONSHARABLE_CLASS( CConnMonConnectionStatusChange ) : public CConnMonEventBase
williamr@2
  2087
    {
williamr@2
  2088
public:
williamr@2
  2089
    /**
williamr@2
  2090
    * Constructor.
williamr@2
  2091
    *
williamr@2
  2092
    * @param aConnectionId Connection ID.
williamr@2
  2093
    * @param aSubConnectionId Subconnection ID.
williamr@2
  2094
    * @param aConnectionStatus Connection status.
williamr@2
  2095
    */
williamr@2
  2096
    CConnMonConnectionStatusChange(
williamr@2
  2097
            const TUint aConnectionId,
williamr@2
  2098
            const TUint aSubConnectionId,
williamr@2
  2099
            const TInt aConnectionStatus );
williamr@2
  2100
williamr@2
  2101
    /**
williamr@2
  2102
    * Destructor.
williamr@2
  2103
    */
williamr@2
  2104
    ~CConnMonConnectionStatusChange();
williamr@2
  2105
williamr@2
  2106
public:
williamr@2
  2107
    /**
williamr@2
  2108
    * Gets the subconnection ID.
williamr@2
  2109
    *
williamr@2
  2110
    * @return Subconnection ID.
williamr@2
  2111
    */
williamr@2
  2112
    IMPORT_C TUint SubConnectionId() const;
williamr@2
  2113
williamr@2
  2114
    /**
williamr@2
  2115
    * Gets the connection status.
williamr@2
  2116
    *
williamr@2
  2117
    * @return Connection status. Values are defined in nifvar.h.
williamr@2
  2118
    */
williamr@2
  2119
    IMPORT_C TInt ConnectionStatus() const;
williamr@2
  2120
williamr@2
  2121
private:
williamr@2
  2122
    TUint iSubConnectionId;
williamr@2
  2123
    TInt iConnectionStatus;
williamr@2
  2124
    };
williamr@2
  2125
williamr@2
  2126
/**
williamr@2
  2127
* This event is triggered when some connection changes from active to idle or
williamr@2
  2128
* vice versa. The client must set KActivityTimeThreshold to receive these
williamr@2
  2129
* events. KActivityTimeThreshold defines the period (in seconds) for checking
williamr@2
  2130
* wether the connection is active or not. The minimum allowed value is 5
williamr@2
  2131
* seconds. The connection is considered active, if data has been passed during
williamr@2
  2132
* the last period, otherwise it is considered inactive. The same information
williamr@2
  2133
* can be retrieved with TBool attribute KConnectionActive.
williamr@2
  2134
*
williamr@2
  2135
* @lib CONNMON.LIB
williamr@2
  2136
*/
williamr@2
  2137
NONSHARABLE_CLASS( CConnMonConnectionActivityChange ) : public CConnMonEventBase
williamr@2
  2138
    {
williamr@2
  2139
public:
williamr@2
  2140
    /**
williamr@2
  2141
    * Constructor.
williamr@2
  2142
    *
williamr@2
  2143
    * @param aConnectionId Connection ID.
williamr@2
  2144
    * @param aSubConnectionId Subconnection ID.
williamr@2
  2145
    * @param aActivity Connection activity.
williamr@2
  2146
    */
williamr@2
  2147
    CConnMonConnectionActivityChange(
williamr@2
  2148
            const TUint aConnectionId,
williamr@2
  2149
            const TUint aSubConnectionId,
williamr@2
  2150
            const TBool aActivity );
williamr@2
  2151
williamr@2
  2152
    /**
williamr@2
  2153
    * Destructor.
williamr@2
  2154
    */
williamr@2
  2155
    ~CConnMonConnectionActivityChange();
williamr@2
  2156
williamr@2
  2157
public:
williamr@2
  2158
    /**
williamr@2
  2159
    * Gets the subconnection ID.
williamr@2
  2160
    *
williamr@2
  2161
    * @return Subconnection ID.
williamr@2
  2162
    */
williamr@2
  2163
    IMPORT_C TUint SubConnectionId() const;
williamr@2
  2164
williamr@2
  2165
    /**
williamr@2
  2166
    * Gets the connection activity.
williamr@2
  2167
    *
williamr@2
  2168
    * @return ETrue if the connection is active, EFalse if not.
williamr@2
  2169
    */
williamr@2
  2170
    IMPORT_C TBool ConnectionActivity() const;
williamr@2
  2171
williamr@2
  2172
private:
williamr@2
  2173
    TUint iSubConnectionId;
williamr@2
  2174
    TBool iActivity;
williamr@2
  2175
    };
williamr@2
  2176
williamr@2
  2177
/**
williamr@2
  2178
* This event is triggered when network registration status (GSM/GPRS/WCDMA)
williamr@2
  2179
* changes. The connection ID passed in the event is a bearer specific
williamr@2
  2180
* connection ID (see TConnMonBearerId). The same information can be retrieved
williamr@2
  2181
* with TInt attribute KNetworkRegistration. Network registration values are
williamr@2
  2182
* defined in TConnMonNetworkRegistration.
williamr@2
  2183
*
williamr@2
  2184
* @lib CONNMON.LIB
williamr@2
  2185
*/
williamr@2
  2186
NONSHARABLE_CLASS( CConnMonNetworkRegistrationChange ) : public CConnMonEventBase
williamr@2
  2187
    {
williamr@2
  2188
public:
williamr@2
  2189
    /**
williamr@2
  2190
    * Constructor.
williamr@2
  2191
    *
williamr@2
  2192
    * @param aConnectionId Connection ID.
williamr@2
  2193
    * @param aRegistrationStatus Network registration status.
williamr@2
  2194
    */
williamr@2
  2195
    CConnMonNetworkRegistrationChange(
williamr@2
  2196
            const TUint aConnectionId,
williamr@2
  2197
            const TInt aRegistrationStatus );
williamr@2
  2198
williamr@2
  2199
    /**
williamr@2
  2200
    * Destructor.
williamr@2
  2201
    */
williamr@2
  2202
    ~CConnMonNetworkRegistrationChange();
williamr@2
  2203
williamr@2
  2204
public:
williamr@2
  2205
    /**
williamr@2
  2206
    * Gets the network registration status.
williamr@2
  2207
    *
williamr@2
  2208
    * @return Registration status. Values are defined in
williamr@2
  2209
    * TConnMonNetworkRegistration.
williamr@2
  2210
    */
williamr@2
  2211
    IMPORT_C TInt RegistrationStatus() const;
williamr@2
  2212
williamr@2
  2213
private:
williamr@2
  2214
    TInt iRegistrationStatus;
williamr@2
  2215
    };
williamr@2
  2216
williamr@2
  2217
/**
williamr@2
  2218
* This event is triggered when bearer type (GPRS/EdgeGPRS/WCDMA) changes. The
williamr@2
  2219
* connection ID passed in the event is a bearer specific connection ID, either
williamr@2
  2220
* EBearerIdGPRS or EBearerIdWCDMA (see TConnMonBearerId). The new bearer passed
williamr@2
  2221
* in the event can be EBearerGPRS, EBearerEdgeGPRS or EBearerWCDMA (see
williamr@2
  2222
* TConnMonBearerType). The same information can be retrieved with TInt
williamr@2
  2223
* attribute KBearer.
williamr@2
  2224
*
williamr@2
  2225
* Note: If TUint attribute KBearerGroupThreshold is set, these events are
williamr@2
  2226
* disabled and events EConnMonBearerInfoChange and EConnMonBearerGroupChange
williamr@2
  2227
* are used instead. Use these events, for example, if HSDPA related information
williamr@2
  2228
* is required.
williamr@2
  2229
*
williamr@2
  2230
* @lib CONNMON.LIB
williamr@2
  2231
*/
williamr@2
  2232
NONSHARABLE_CLASS( CConnMonBearerChange ) : public CConnMonEventBase
williamr@2
  2233
    {
williamr@2
  2234
public:
williamr@2
  2235
    /**
williamr@2
  2236
    * Constructor.
williamr@2
  2237
    *
williamr@2
  2238
    * @param aConnectionId Connection ID.
williamr@2
  2239
    * @param aBearer Bearer.
williamr@2
  2240
    */
williamr@2
  2241
    CConnMonBearerChange( const TUint aConnectionId, const TInt aBearer );
williamr@2
  2242
williamr@2
  2243
    /**
williamr@2
  2244
    * Destructor.
williamr@2
  2245
    */
williamr@2
  2246
    ~CConnMonBearerChange();
williamr@2
  2247
williamr@2
  2248
public:
williamr@2
  2249
    /**
williamr@2
  2250
    * Gets the new bearer.
williamr@2
  2251
    *
williamr@2
  2252
    * @return New bearer. Values are defined in TConnMonBearerType.
williamr@2
  2253
    */
williamr@2
  2254
    IMPORT_C TInt Bearer() const;
williamr@2
  2255
williamr@2
  2256
private:
williamr@2
  2257
    TInt iBearer;
williamr@2
  2258
    };
williamr@2
  2259
williamr@2
  2260
/**
williamr@2
  2261
* This event is triggered when signal strength changes. The connection ID
williamr@2
  2262
* passed in the event is a bearer specific connection ID (see
williamr@2
  2263
* TConnMonBearerId). This event is valid only for cellular (GPRS, WCDMA, etc.)
williamr@2
  2264
* bearers and not for other bearers, e.g. WLAN. The client must set
williamr@2
  2265
* KSignalStrengthThreshold to 1 to receive these events.
williamr@2
  2266
*
williamr@2
  2267
* @lib CONNMON.LIB
williamr@2
  2268
*/
williamr@2
  2269
NONSHARABLE_CLASS( CConnMonSignalStrengthChange ) : public CConnMonEventBase
williamr@2
  2270
    {
williamr@2
  2271
public:
williamr@2
  2272
    /**
williamr@2
  2273
    * Constructor.
williamr@2
  2274
    *
williamr@2
  2275
    * @param aConnectionId Connection ID.
williamr@2
  2276
    * @param aSignalStrength Signal strength in dBm.
williamr@2
  2277
    */
williamr@2
  2278
    CConnMonSignalStrengthChange(
williamr@2
  2279
            const TUint aConnectionId,
williamr@2
  2280
            const TInt aSignalStrength );
williamr@2
  2281
williamr@2
  2282
    /**
williamr@2
  2283
    * Destructor.
williamr@2
  2284
    */
williamr@2
  2285
    ~CConnMonSignalStrengthChange();
williamr@2
  2286
williamr@2
  2287
public:
williamr@2
  2288
    /**
williamr@2
  2289
    * Gets the signal strength.
williamr@2
  2290
    *
williamr@2
  2291
    * @return Signal strength in dBm.
williamr@2
  2292
    */
williamr@2
  2293
    IMPORT_C TInt SignalStrength() const;
williamr@2
  2294
williamr@2
  2295
private:
williamr@2
  2296
    TInt iSignalStrength;
williamr@2
  2297
    };
williamr@2
  2298
williamr@2
  2299
/**
williamr@2
  2300
* This event is triggered when the availability of some bearer changes. The
williamr@2
  2301
* connection ID passed in the event is a bearer specific connection ID (see
williamr@2
  2302
* TConnMonBearerId). The client must set KBearerAvailabilityThreshold to 1 to
williamr@2
  2303
* receive these events. Using this event for detecting changes in WLAN
williamr@2
  2304
* availability requires WLAN background scanning to be enabled.
williamr@2
  2305
*
williamr@2
  2306
* @lib CONNMON.LIB
williamr@2
  2307
*/
williamr@2
  2308
NONSHARABLE_CLASS( CConnMonBearerAvailabilityChange ) : public CConnMonEventBase
williamr@2
  2309
    {
williamr@2
  2310
public:
williamr@2
  2311
    /**
williamr@2
  2312
    * Constructor.
williamr@2
  2313
    *
williamr@2
  2314
    * @param aConnectionId Connection ID.
williamr@2
  2315
    * @param aAvailability Availability of the bearer.
williamr@2
  2316
    */
williamr@2
  2317
    CConnMonBearerAvailabilityChange(
williamr@2
  2318
            const TUint aConnectionId,
williamr@2
  2319
            const TBool aAvailability );
williamr@2
  2320
williamr@2
  2321
    /**
williamr@2
  2322
    * Destructor.
williamr@2
  2323
    */
williamr@2
  2324
    ~CConnMonBearerAvailabilityChange();
williamr@2
  2325
williamr@2
  2326
public:
williamr@2
  2327
    /**
williamr@2
  2328
    * Gets the availability of the bearer.
williamr@2
  2329
    *
williamr@2
  2330
    * @return ETrue if the bearer is available, EFalse if not.
williamr@2
  2331
    */
williamr@2
  2332
    IMPORT_C TBool Availability() const;
williamr@2
  2333
williamr@2
  2334
private:
williamr@2
  2335
    TBool iAvailability;
williamr@2
  2336
    };
williamr@2
  2337
williamr@2
  2338
/**
williamr@2
  2339
* This event is triggered when a plug-in sends a bearer specific event that is
williamr@2
  2340
* unknown to ConnMon.
williamr@2
  2341
*
williamr@2
  2342
* @lib CONNMON.LIB
williamr@2
  2343
*/
williamr@2
  2344
NONSHARABLE_CLASS( CConnMonGenericEvent ) : public CConnMonEventBase
williamr@2
  2345
    {
williamr@2
  2346
public:
williamr@2
  2347
    /**
williamr@2
  2348
    * Constructor.
williamr@2
  2349
    *
williamr@2
  2350
    * @param aType Event type.
williamr@2
  2351
    * @param aConnectionId Connection ID.
williamr@2
  2352
    * @param aData Pointer to the event data.
williamr@2
  2353
    */
williamr@2
  2354
    CConnMonGenericEvent(
williamr@2
  2355
            const TUint aType,
williamr@2
  2356
            const TUint aConnectionId,
williamr@2
  2357
            TAny* aData );
williamr@2
  2358
williamr@2
  2359
    /**
williamr@2
  2360
    * Destructor.
williamr@2
  2361
    */
williamr@2
  2362
    ~CConnMonGenericEvent();
williamr@2
  2363
williamr@2
  2364
public:
williamr@2
  2365
    /**
williamr@2
  2366
    * Gets a pointer to the event data.
williamr@2
  2367
    * The pointer is valid only inside EventL().
williamr@2
  2368
    *
williamr@2
  2369
    * @return Pointer to the event data.
williamr@2
  2370
    */
williamr@2
  2371
    IMPORT_C TAny* Data() const;
williamr@2
  2372
williamr@2
  2373
private:
williamr@2
  2374
    TAny* iData;
williamr@2
  2375
    };
williamr@2
  2376
williamr@2
  2377
/**
williamr@2
  2378
* This event is triggered when IAP availability changes. The connection ID
williamr@2
  2379
* passed in the event is the generic connection ID EBearerIdAll. The ID numbers
williamr@2
  2380
* of available IAPs are included in the event (see TConnMonIapInfo). The same
williamr@2
  2381
* information can be retrieved with packaged attribute KIapAvailability.
williamr@2
  2382
*
williamr@2
  2383
* @lib CONNMON.LIB
williamr@2
  2384
*/
williamr@2
  2385
NONSHARABLE_CLASS( CConnMonIapAvailabilityChange ) : public CConnMonEventBase
williamr@2
  2386
    {
williamr@2
  2387
public:
williamr@2
  2388
    /**
williamr@2
  2389
    * Constructor.
williamr@2
  2390
    *
williamr@2
  2391
    * @param aConnectionId Connection ID.
williamr@2
  2392
    * @param aIapInfoPtr Pointer to the IAP availability information.
williamr@2
  2393
    */
williamr@2
  2394
    CConnMonIapAvailabilityChange(
williamr@2
  2395
            const TUint aConnectionId,
williamr@2
  2396
            const TConnMonIapInfo* aIapInfoPtr );
williamr@2
  2397
williamr@2
  2398
    /**
williamr@2
  2399
    * Destructor.
williamr@2
  2400
    */
williamr@2
  2401
    ~CConnMonIapAvailabilityChange();
williamr@2
  2402
williamr@2
  2403
public:
williamr@2
  2404
    /**
williamr@2
  2405
    * Gets the IAP availability information.
williamr@2
  2406
    *
williamr@2
  2407
    * @return IAP availability information.
williamr@2
  2408
    */
williamr@2
  2409
    IMPORT_C TConnMonIapInfo IapAvailability() const;
williamr@2
  2410
williamr@2
  2411
private:
williamr@2
  2412
    TConnMonIapInfo iIapInfo;
williamr@2
  2413
    };
williamr@2
  2414
williamr@2
  2415
/**
williamr@2
  2416
* This event is triggered when the used WLAN transmit power changes. The
williamr@2
  2417
* connection ID passed in the event is the bearer specific connection ID
williamr@2
  2418
* EBearerIdWLAN. Transmit power is given in milliwatts (mW). The same
williamr@2
  2419
* information can be retrieved with TUint attribute KTransmitPower.
williamr@2
  2420
*
williamr@2
  2421
* @lib CONNMON.LIB
williamr@2
  2422
*/
williamr@2
  2423
NONSHARABLE_CLASS( CConnMonTransmitPowerChange ) : public CConnMonEventBase
williamr@2
  2424
    {
williamr@2
  2425
public:
williamr@2
  2426
    /**
williamr@2
  2427
    * Constructor.
williamr@2
  2428
    *
williamr@2
  2429
    * @param aConnectionId Connection ID.
williamr@2
  2430
    * @param aTransmitPower Transmit power in mW.
williamr@2
  2431
    */
williamr@2
  2432
    CConnMonTransmitPowerChange(
williamr@2
  2433
            const TUint aConnectionId,
williamr@2
  2434
            const TUint aTransmitPower );
williamr@2
  2435
williamr@2
  2436
    /**
williamr@2
  2437
    * Destructor.
williamr@2
  2438
    */
williamr@2
  2439
    ~CConnMonTransmitPowerChange();
williamr@2
  2440
williamr@2
  2441
public:
williamr@2
  2442
    /**
williamr@2
  2443
    * Gets the transmit power.
williamr@2
  2444
    *
williamr@2
  2445
    * @return Transmit power in mW.
williamr@2
  2446
    */
williamr@2
  2447
    IMPORT_C TUint TransmitPower() const;
williamr@2
  2448
williamr@2
  2449
private:
williamr@2
  2450
    TUint iTransmitPower;
williamr@2
  2451
    };
williamr@2
  2452
williamr@2
  2453
/**
williamr@2
  2454
* This event is triggered when SNAP availability changes. The connection ID
williamr@2
  2455
* passed in the event is the generic connection ID EBearerIdAll. The ID numbers
williamr@2
  2456
* of available SNAPs are included in the event (see TConnMonSNAPInfo). The same
williamr@2
  2457
* information can be retrieved with packaged attributes KSNAPsAvailability and
williamr@2
  2458
* KAvailableSNAPsIds.
williamr@2
  2459
*
williamr@2
  2460
* @lib CONNMON.LIB
williamr@2
  2461
*/
williamr@2
  2462
NONSHARABLE_CLASS( CConnMonSNAPsAvailabilityChange ) : public CConnMonEventBase
williamr@2
  2463
    {
williamr@2
  2464
public:
williamr@2
  2465
    /**
williamr@2
  2466
    * Constructor.
williamr@2
  2467
    *
williamr@2
  2468
    * @param aConnectionId Connection ID.
williamr@2
  2469
    * @param aSNAPsAvailable Number of available SNAPs.
williamr@2
  2470
    * @param aSNAPInfoPtr Pointer to the SNAP availability information.
williamr@2
  2471
    */
williamr@2
  2472
    CConnMonSNAPsAvailabilityChange(
williamr@2
  2473
            const TUint aConnectionId,
williamr@2
  2474
            const TUint aSNAPsAvailable,
williamr@2
  2475
            const TConnMonSNAPInfo* aSNAPInfoPtr );
williamr@2
  2476
williamr@2
  2477
    /**
williamr@2
  2478
    * Destructor.
williamr@2
  2479
    */
williamr@2
  2480
    ~CConnMonSNAPsAvailabilityChange();
williamr@2
  2481
williamr@2
  2482
public:
williamr@2
  2483
    /**
williamr@2
  2484
    * Gets the SNAP availability information.
williamr@2
  2485
    *
williamr@2
  2486
    * @return SNAP availability information.
williamr@2
  2487
    */
williamr@2
  2488
    IMPORT_C TConnMonSNAPInfo SNAPAvailability() const;
williamr@2
  2489
williamr@2
  2490
    /**
williamr@2
  2491
    * Gets the number of available SNAPs.
williamr@2
  2492
    *
williamr@2
  2493
    * @return Number of available SNAPs.
williamr@2
  2494
    */
williamr@2
  2495
    IMPORT_C TUint SNAPsAvailabile() const;
williamr@2
  2496
williamr@2
  2497
private:
williamr@2
  2498
    TConnMonSNAPInfo iSNAPInfo;
williamr@2
  2499
    TUint iSNAPsAvailable;
williamr@2
  2500
    };
williamr@2
  2501
williamr@2
  2502
/**
williamr@2
  2503
* This event is triggered when new WLAN networks are detected during a WLAN
williamr@2
  2504
* scan. The connection ID passed in the event is the bearer specific connection
williamr@2
  2505
* ID EBearerIdWLAN. To receive these events, WLAN background scanning must be
williamr@2
  2506
* enabled, or some other mechanism must be used to trigger the necessary WLAN
williamr@2
  2507
* scans.
williamr@2
  2508
*
williamr@2
  2509
* @lib CONNMON.LIB
williamr@2
  2510
*/
williamr@2
  2511
NONSHARABLE_CLASS( CConnMonNewWLANNetworkDetected ) : public CConnMonEventBase
williamr@2
  2512
    {
williamr@2
  2513
public:
williamr@2
  2514
    /**
williamr@2
  2515
    * Constructor.
williamr@2
  2516
    *
williamr@2
  2517
    * @param aConnectionId Connection ID.
williamr@2
  2518
    */
williamr@2
  2519
    CConnMonNewWLANNetworkDetected( const TUint aConnectionId );
williamr@2
  2520
williamr@2
  2521
    /**
williamr@2
  2522
    * Destructor.
williamr@2
  2523
    */
williamr@2
  2524
    ~CConnMonNewWLANNetworkDetected();
williamr@2
  2525
    };
williamr@2
  2526
williamr@2
  2527
/**
williamr@2
  2528
* This event is triggered when one or more WLAN networks have been lost since
williamr@2
  2529
* the last WLAN scan. The connection ID passed in the event is the bearer
williamr@2
  2530
* specific connection ID EBearerIdWLAN. To receive these events, WLAN
williamr@2
  2531
* background scanning must be enabled, or some other mechanism must be used to
williamr@2
  2532
* trigger the necessary WLAN scans.
williamr@2
  2533
*
williamr@2
  2534
* @lib CONNMON.LIB
williamr@2
  2535
*/
williamr@2
  2536
NONSHARABLE_CLASS( CConnMonOldWLANNetworkLost ) : public CConnMonEventBase
williamr@2
  2537
    {
williamr@2
  2538
public:
williamr@2
  2539
    /**
williamr@2
  2540
    * Constructor.
williamr@2
  2541
    *
williamr@2
  2542
    * @param aConnectionId Connection ID.
williamr@2
  2543
    */
williamr@2
  2544
    CConnMonOldWLANNetworkLost( const TUint aConnectionId );
williamr@2
  2545
williamr@2
  2546
    /**
williamr@2
  2547
    * Destructor.
williamr@2
  2548
    */
williamr@2
  2549
    ~CConnMonOldWLANNetworkLost();
williamr@2
  2550
    };
williamr@2
  2551
williamr@2
  2552
/**
williamr@2
  2553
* This event is triggered when GPRS or WCDMA bearer availability changes, a
williamr@2
  2554
* phone call is started, or a phone call ends. The connection ID passed in the
williamr@2
  2555
* event is a bearer specific connection ID, either EBearerIdGPRS or
williamr@2
  2556
* EBearerIdWCDMA (see TConnMonBearerId).
williamr@2
  2557
*
williamr@2
  2558
* EConnMonPacketDataUnavailable and EConnMonPacketDataAvailable events form a
williamr@2
  2559
* pair. Two events are always sent, one with connection ID EBearerIdGPRS for 2G
williamr@2
  2560
* network, and one with connection ID EBearerIdWCDMA for 3G network. The event
williamr@2
  2561
* for the network that the phone is not registered to is always of type
williamr@2
  2562
* EConnMonPacketDataUnavailable. If the phone does not support dual transfer
williamr@2
  2563
* mode and a call is started, a GPRS or WCDMA packet data connection will be
williamr@2
  2564
* put on hold. In this scenario, both will be of type
williamr@2
  2565
* EConnMonPacketDataUnavailable. The same information can be retrieved with
williamr@2
  2566
* TBool attribute KPacketDataAvailability.
williamr@2
  2567
*
williamr@2
  2568
* @lib CONNMON.LIB
williamr@2
  2569
*/
williamr@2
  2570
NONSHARABLE_CLASS( CConnMonPacketDataUnavailable ) : public CConnMonEventBase
williamr@2
  2571
    {
williamr@2
  2572
public:
williamr@2
  2573
    /**
williamr@2
  2574
    * Constructor.
williamr@2
  2575
    *
williamr@2
  2576
    * @param aConnectionId Bearer specific connection ID, EBearerIdGPRS or
williamr@2
  2577
    * EBearerIdWCDMA.
williamr@2
  2578
    */
williamr@2
  2579
    CConnMonPacketDataUnavailable( const TUint aConnectionId );
williamr@2
  2580
williamr@2
  2581
    /**
williamr@2
  2582
    * Destructor.
williamr@2
  2583
    */
williamr@2
  2584
    virtual ~CConnMonPacketDataUnavailable();
williamr@2
  2585
    };
williamr@2
  2586
williamr@2
  2587
/**
williamr@2
  2588
* This event is triggered when GPRS or WCDMA bearer availability changes, a
williamr@2
  2589
* phone call is started, or a phone call ends. The connection ID passed in the
williamr@2
  2590
* event is a bearer specific connection ID, either EBearerIdGPRS or
williamr@2
  2591
* EBearerIdWCDMA (see TConnMonBearerId).
williamr@2
  2592
*
williamr@2
  2593
* EConnMonPacketDataAvailable and EConnMonPacketDataUnavailable events form a
williamr@2
  2594
* pair. Two events are always sent, one with connection ID EBearerIdGPRS for 2G
williamr@2
  2595
* network, and one with connection ID EBearerIdWCDMA for 3G network. The event
williamr@2
  2596
* for the network that the phone is not registered to is always of type
williamr@2
  2597
* EConnMonPacketDataUnavailable. If the phone does not support dual transfer
williamr@2
  2598
* mode and a call is started, a GPRS or WCDMA packet data connection will be
williamr@2
  2599
* put on hold. In this scenario, both will be of type
williamr@2
  2600
* EConnMonPacketDataUnavailable. The same information can be retrieved with
williamr@2
  2601
* TBool attribute KPacketDataAvailability.
williamr@2
  2602
*
williamr@2
  2603
* @lib CONNMON.LIB
williamr@2
  2604
*/
williamr@2
  2605
NONSHARABLE_CLASS( CConnMonPacketDataAvailable ) : public CConnMonEventBase
williamr@2
  2606
    {
williamr@2
  2607
public:
williamr@2
  2608
    /**
williamr@2
  2609
    * Constructor.
williamr@2
  2610
    *
williamr@2
  2611
    * @param aConnectionId Bearer specific connection ID, EBearerIdGPRS or
williamr@2
  2612
    * EBearerIdWCDMA.
williamr@2
  2613
    */
williamr@2
  2614
    CConnMonPacketDataAvailable( const TUint aConnectionId );
williamr@2
  2615
williamr@2
  2616
    /**
williamr@2
  2617
    * Destructor.
williamr@2
  2618
    */
williamr@2
  2619
    virtual ~CConnMonPacketDataAvailable();
williamr@2
  2620
    };
williamr@2
  2621
williamr@2
  2622
/**
williamr@2
  2623
* This event is triggered when there is a change in bearer information for an
williamr@2
  2624
* existing connection, or if the network mode changes e.g. from 2G to 3G. For
williamr@2
  2625
* connection specific events, the connection ID passed in the event is the
williamr@2
  2626
* respective connection specific ID, and for network level events, the
williamr@2
  2627
* connection ID is EBearerIdAll. The same connection level information can be
williamr@2
  2628
* retrieved with TInt attribute KBearerInfo. The bearer info values are defined
williamr@2
  2629
* in TConnMonBearerInfo.
williamr@2
  2630
*
williamr@2
  2631
* Note: The client needs to set the TUint attribute KBearerGroupThreshold in
williamr@2
  2632
* order to receive these events. This also disables EConnMonBearerChange events.
williamr@2
  2633
*
williamr@2
  2634
* @lib CONNMON.LIB
williamr@2
  2635
*/
williamr@2
  2636
NONSHARABLE_CLASS( CConnMonBearerInfoChange ) : public CConnMonEventBase
williamr@2
  2637
    {
williamr@2
  2638
public:
williamr@2
  2639
    /**
williamr@2
  2640
    * Constructor.
williamr@2
  2641
    *
williamr@2
  2642
    * @param aConnectionId Connection ID.
williamr@2
  2643
    * @param aBearerInfo Bearer information.
williamr@2
  2644
    */
williamr@2
  2645
    CConnMonBearerInfoChange(
williamr@2
  2646
            const TUint aConnectionId,
williamr@2
  2647
            const TInt aBearerInfo );
williamr@2
  2648
williamr@2
  2649
    /**
williamr@2
  2650
    * Destructor.
williamr@2
  2651
    */
williamr@2
  2652
    ~CConnMonBearerInfoChange();
williamr@2
  2653
williamr@2
  2654
public:
williamr@2
  2655
    /**
williamr@2
  2656
    * Gets the new bearer information. Values are defined in TConnMonBearerInfo.
williamr@2
  2657
    *
williamr@2
  2658
    * @return New bearer information.
williamr@2
  2659
    */
williamr@2
  2660
    IMPORT_C TInt BearerInfo() const;
williamr@2
  2661
williamr@2
  2662
private:
williamr@2
  2663
    TInt iBearerInfo;
williamr@2
  2664
    };
williamr@2
  2665
williamr@2
  2666
/**
williamr@2
  2667
* This event is triggered when there is a change in bearer group information
williamr@2
  2668
* for an existing connection. The connection ID passed in the event is the
williamr@2
  2669
* respective connection specific ID. The same information can be retrieved with
williamr@2
  2670
* packaged attribute KBearerGroupInfo. The bearer group bitmask is defined in
williamr@2
  2671
* TConnMonBearerGroup.
williamr@2
  2672
*
williamr@2
  2673
* Note: The client needs to set the TUint attribute KBearerGroupThreshold in
williamr@2
  2674
* order to receive these events. This also disables EConnMonBearerChange events.
williamr@2
  2675
*
williamr@2
  2676
* @lib CONNMON.LIB
williamr@2
  2677
*/
williamr@2
  2678
NONSHARABLE_CLASS( CConnMonBearerGroupChange ) : public CConnMonEventBase
williamr@2
  2679
    {
williamr@2
  2680
public:
williamr@2
  2681
    /**
williamr@2
  2682
    * Constructor.
williamr@2
  2683
    *
williamr@2
  2684
    * @param aConnectionId Connection ID.
williamr@2
  2685
    * @param aBearerGroups1 First bearer group bitmask.
williamr@2
  2686
    * @param aBearerGroups2 Second bearer group bitmask.
williamr@2
  2687
    * @param aInternal ETrue if connection is internal, EFalse if external.
williamr@2
  2688
    */
williamr@2
  2689
    CConnMonBearerGroupChange(
williamr@2
  2690
            const TUint aConnectionId,
williamr@2
  2691
            const TUint aBearerGroups1,
williamr@2
  2692
            const TUint aBearerGroups2,
williamr@2
  2693
            const TBool aInternal );
williamr@2
  2694
williamr@2
  2695
    /**
williamr@2
  2696
    * Destructor.
williamr@2
  2697
    */
williamr@2
  2698
    ~CConnMonBearerGroupChange();
williamr@2
  2699
williamr@2
  2700
public:
williamr@2
  2701
    /**
williamr@2
  2702
    * Gets the new bearer groups. Values are defined in TConnMonBearerGroup.
williamr@2
  2703
    *
williamr@2
  2704
    * @param aBearerGroups1 Will contain the first bearer group bitmask.
williamr@2
  2705
    * @param aBearerGroups2 Will contain the second bearer group bitmask.
williamr@2
  2706
    */
williamr@2
  2707
    IMPORT_C void BearerGroups(
williamr@2
  2708
            TUint& aBearerGroups1,
williamr@2
  2709
            TUint& aBearerGroups2 ) const;
williamr@2
  2710
williamr@2
  2711
    /**
williamr@2
  2712
    * Gets the information whether the current connection bearer is internal
williamr@2
  2713
    * or external.
williamr@2
  2714
    *
williamr@2
  2715
    * @return ETrue if the bearer is internal and EFalse if external.
williamr@2
  2716
    */
williamr@2
  2717
    IMPORT_C TBool Internal() const;
williamr@2
  2718
williamr@2
  2719
private:
williamr@2
  2720
    TBool iInternal;      // ETrue for internal, EFalse for external connection.
williamr@2
  2721
    TUint iBearerGroups1; // Contains the groups as bitmask.
williamr@2
  2722
    TUint iBearerGroups2; // Reserved for the future use.
williamr@2
  2723
    };
williamr@2
  2724
williamr@2
  2725
#endif // __CONNECTIONMONITOR_H
williamr@2
  2726
williamr@2
  2727
// End of file