localconnectivityservice/dun/utils/inc/DunTransporter.h
author hgs
Thu, 04 Nov 2010 15:31:42 +0800
changeset 60 841f70763fbe
parent 29 3ae5cb0b4c02
permissions -rw-r--r--
201044_04
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     1
/*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     2
* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies).
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     3
* All rights reserved.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     8
*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     9
* Initial Contributors:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    11
*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    12
* Contributors:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    13
*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    14
* Description:  Managing abstracted "channels" of network side communication
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    15
*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    16
*/
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    17
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    18
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    19
#ifndef C_CDUNTRANSPORTER_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    20
#define C_CDUNTRANSPORTER_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    21
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    22
#include <e32base.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    23
#ifdef PRJ_USE_NETWORK_STUBS
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    24
#include <c32comm_stub.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    25
#else
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    26
#include <c32comm.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    27
#endif
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    28
#include <es_sock.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    29
#include "DunNetDataport.h"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    30
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    31
typedef TAny* TConnId;  // supported now: RSocket*, RComm*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    32
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    33
const TInt KDunStreamTypeMask    = 0x02;  // 10
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    34
const TInt KDunOperationTypeMask = 0x01;  // 01
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    35
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    36
enum TDunOperationType
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    37
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    38
    EDunOperationTypeUndefined = KErrNotFound,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    39
    EDunOperationTypeRead      = 0x00,  // 00
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    40
    EDunOperationTypeWrite     = 0x01   // 01
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    41
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    42
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    43
enum TDunMediaContext
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    44
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    45
    EDunMediaContextUndefined = KErrNotFound,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    46
    EDunMediaContextNetwork   = 0,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    47
    EDunMediaContextLocal
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    48
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    49
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    50
enum TDunMedia
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    51
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    52
    EDunMediaUndefined = KErrNotFound,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    53
    EDunMediaNetwork   = 0,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    54
    EDunMediaRComm,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    55
    EDunMediaRSocket
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    56
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    57
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    58
enum TDunDirection
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    59
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    60
    EDunDirectionUndefined = KErrNotFound,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    61
    EDunReaderUpstream     = 0x00,  // 00
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    62
    EDunWriterUpstream     = 0x01,  // 01
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    63
    EDunReaderDownstream   = 0x02,  // 10
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    64
    EDunWriterDownstream   = 0x03   // 11
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    65
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    66
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    67
enum TDunStreamType
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    68
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    69
    EDunStreamTypeUndefined  = KErrNotFound,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    70
    EDunStreamTypeUpstream   = 0x00,  // 00
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    71
    EDunStreamTypeDownstream = 0x02   // 10
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    72
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    73
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    74
enum TDunState
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    75
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    76
    EDunStateIdle,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    77
    EDunStateCallListen,       // Transporter state for call state listening
60
841f70763fbe 201044_04
hgs
parents: 29
diff changeset
    78
    EDunStateAtCmdHandling,    // State for AT command handling
841f70763fbe 201044_04
hgs
parents: 29
diff changeset
    79
    EDunStateAtCmdPushing,     // State for AT command reply pushing
841f70763fbe 201044_04
hgs
parents: 29
diff changeset
    80
    EDunStateAtCmdEchoing,     // State for AT command character echoing (text mode)
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    81
    EDunStateUiNoting          // Transporter state for UI note showing
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    82
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    83
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    84
enum TDunReasonType
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    85
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    86
    EDunReasonTypeSignal,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    87
    EDunReasonTypeRW,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    88
    EDunReasonTypeRunL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    89
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    90
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    91
class CDunChanMan;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    92
class MDunPluginManager;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    93
class MDunTransporterUtility;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    94
class CDunTransUtils;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    95
class CDunConnWaiter;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    96
class TDunWaiterData;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    97
class CDunUpstream;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    98
class CDunDownstream;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    99
class CDunSignalCopy;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   100
class CDunSignalNotify;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   101
class CDunNoteHandler;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   102
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   103
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   104
 *  Class used for reporting connection error's reason and signal changes
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   105
 *  of network side
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   106
 *  Connection error can happen in read/write and RunL error cases
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   107
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   108
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   109
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   110
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   111
NONSHARABLE_CLASS( TDunConnectionReason )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   112
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   113
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   114
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   115
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   116
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   117
     * Reason type of error; either R/W or RunL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   118
     * or signal (network side)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   119
     * Set in all cases (signal, R/W, RunL)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   120
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   121
    TDunReasonType iReasonType;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   122
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   123
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   124
     * Context of media where error occurred: network or local
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   125
     * Set in all error cases (signal, R/W, RunL)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   126
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   127
    TDunMediaContext iContext;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   128
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   129
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   130
     * Signal type of network side
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   131
     * Set if signal case, 0 otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   132
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   133
    TUint iSignalType;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   134
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   135
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   136
     * Is signal high or low of network side
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   137
     * Set if signal case, 0 otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   138
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   139
    TBool iSignalHigh;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   140
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   141
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   142
     * Direction of data transfer
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   143
     * Set if R/W case, EDunDirectionUndefined otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   144
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   145
    TDunDirection iDirection;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   146
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   147
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   148
     * Error code of failure
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   149
     * Set if R/W or RunL case, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   150
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   151
    TInt iErrorCode;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   152
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   153
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   154
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   155
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   156
 *  Notification interface class to report line status
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   157
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   158
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   159
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   160
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   161
NONSHARABLE_CLASS( MDunConnMon )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   162
	{
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   163
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   164
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   165
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   166
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   167
     * Gets called when line status changes or when any type of error is
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   168
     * detected
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   169
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   170
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   171
     * @param aConnId Connection ID for callback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   172
     * @param aConnReason Reason for progress change
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   173
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   174
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   175
    virtual void NotifyProgressChangeL(
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   176
        TConnId aConnId,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   177
        TDunConnectionReason aConnReason ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   178
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   179
	};
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   180
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   181
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   182
 *  Notification interface class to report service advertisement status changes
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   183
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   184
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   185
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   186
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   187
NONSHARABLE_CLASS( MDunServAdvMon )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   188
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   189
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   190
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   191
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   192
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   193
     * Gets called when advertisement status changes to start
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   194
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   195
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   196
     * @param aCreation ETrue if channel creation
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   197
     *                  EFalse if channel free
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   198
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   199
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   200
    virtual void NotifyAdvertisementStart( TBool aCreation ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   201
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   202
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   203
     * Gets called when advertisement status changes to end
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   204
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   205
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   206
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   207
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   208
    virtual void NotifyAdvertisementEnd() = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   209
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   210
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   211
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   212
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   213
 *  Notification interface class for buffer correction
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   214
 *  This interface makes possible to change suggested local media buffer size
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   215
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   216
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   217
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   218
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   219
NONSHARABLE_CLASS( MDunBufferCorrection )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   220
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   221
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   222
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   223
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   224
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   225
     * Notifies about request to change local media's buffer size
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   226
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   227
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   228
     * @param aLength Suggested buffer length that will be used if no
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   229
     *                correction done
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   230
     * @return New (corrected) buffer length
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   231
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   232
    virtual TInt NotifyBufferCorrection( TInt aLength ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   233
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   234
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   235
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   236
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   237
 *  Class to store data needed for each separate "channel"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   238
 *  One TDunChannelData data contains objects needed for one channel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   239
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   240
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   241
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   242
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   243
NONSHARABLE_CLASS( TDunChannelData )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   244
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   245
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   246
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   247
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   248
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   249
     * RComm object of network side
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   250
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   251
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   252
    RComm* iNetwork;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   253
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   254
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   255
     * RComm object of local media side
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   256
     * If this is set then iSocket is not used
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   257
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   258
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   259
    RComm* iComm;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   260
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   261
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   262
     * RSocket object of local media side
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   263
     * If this is set then iComm is not used
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   264
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   265
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   266
    RSocket* iSocket;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   267
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   268
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   269
     * Name for the channel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   270
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   271
    HBufC8* iChannelName;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   272
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   273
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   274
     * Upstream read/write object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   275
     * Reads data from local media and writes to network
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   276
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   277
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   278
    CDunUpstream* iUpstreamRW;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   279
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   280
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   281
     * Downstream read/write object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   282
     * Reads data from network and writes to local media
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   283
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   284
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   285
    CDunDownstream* iDownstreamRW;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   286
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   287
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   288
     * Upstream buffer (Local -> Network)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   289
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   290
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   291
    TUint8* iBufferUpstream;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   292
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   293
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   294
     * Downstream buffer (Local <- Network)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   295
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   296
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   297
    TUint8* iBufferDownstream;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   298
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   299
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   300
     * Pointer to upstream's buffer (Local -> Network)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   301
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   302
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   303
    TPtr8* iBufferUpPtr;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   304
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   305
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   306
     * Pointer to downstream's buffer (Local <- Network)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   307
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   308
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   309
    TPtr8* iBufferDownPtr;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   310
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   311
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   312
     * Upstream signal copy
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   313
     * If this is set then iSignalNotify is not used
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   314
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   315
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   316
    CDunSignalCopy* iUpstreamSignalCopy;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   317
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   318
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   319
     * Downstream signal copy
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   320
     * If this is set then iSignalNotify is not used
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   321
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   322
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   323
    CDunSignalCopy* iDownstreamSignalCopy;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   324
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   325
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   326
     * Signal notifier
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   327
     * If this is set then the following are not used:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   328
     * iUpstreamSignalCopy, iDownstreamSignalCopy
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   329
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   330
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   331
    CDunSignalNotify* iSignalNotify;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   332
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   333
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   334
     * Owner's UID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   335
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   336
    TUid iOwnerUid;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   337
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   338
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   339
     * Flag that indicates whether this channel is allocated or not
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   340
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   341
    TBool iChannelInUse;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   342
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   343
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   344
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   345
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   346
 *  Class to store data needed for each plugin service advertisement
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   347
 *  One TDunChannelData data contains objects needed for one plugin
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   348
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   349
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   350
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   351
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   352
NONSHARABLE_CLASS( TDunServAdvData )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   353
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   354
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   355
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   356
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   357
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   358
     * Owner's UID for which to have the monitor
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   359
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   360
    TUid iOwnerUid;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   361
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   362
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   363
     * Service advertisement monitor
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   364
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   365
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   366
    MDunServAdvMon* iServAdvMon;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   367
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   368
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   369
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   370
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   371
 *  Class for managing abstracted "channels" of network side communication
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   372
 *  This is main class to be used by other components
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   373
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   374
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   375
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   376
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   377
NONSHARABLE_CLASS( CDunTransporter ) : public CBase
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   378
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   379
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   380
    friend class CDunTransUtils;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   381
    friend class CDunChanMan;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   382
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   383
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   384
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   385
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   386
     * Two-phased constructor.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   387
     * @param aPluginManager Callback to call when notification via
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   388
     *                       MDunPluginManager to be made
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   389
     * @param aNumOfMaxChannels Number of wanted maximum channels
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   390
     *                          (can be omitted with 0)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   391
     * @return Instance of self
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   392
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   393
	IMPORT_C static CDunTransporter* NewL( MDunPluginManager* aPluginManager,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   394
	                                       TInt aNumOfMaxChannels=0 );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   395
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   396
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   397
    * Destructor.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   398
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   399
    virtual ~CDunTransporter();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   400
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   401
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   402
     * Number of allocated channels, is the same number as allocated and active
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   403
     * (non-waiting) channels
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   404
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   405
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   406
     * @return Number of allocated channels
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   407
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   408
    IMPORT_C TInt NumberOfAllocatedChannels();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   409
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   410
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   411
     * Number of waiting channels, is the same number as allocated and inactive
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   412
     * (waiting) channels
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   413
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   414
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   415
     * @return Number of waiting channels
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   416
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   417
    IMPORT_C TInt NumberOfWaitingChannels();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   418
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   419
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   420
     * Gets the number of allocated channels by owner UID, is the same number
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   421
     * as allocated and active (non-waiting) channels
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   422
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   423
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   424
     * @param aOwnerUid UID of the channel owner
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   425
     * @return Number of allocated channels by UID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   426
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   427
    IMPORT_C TInt GetNumberOfAllocatedChannelsByUid( TUid aOwnerUid );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   428
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   429
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   430
     * Gets the number of waiting channels by owner UID, is the same number
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   431
     * as allocated and inactive (waiting) channels
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   432
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   433
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   434
     * @param aOwnerUid UID of the channel owner
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   435
     * @return Number of waiting channels by UID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   436
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   437
    IMPORT_C TInt GetNumberOfWaitingChannelsByUid( TUid aOwnerUid );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   438
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   439
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   440
     * Service advertisement status
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   441
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   442
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   443
     * @return ETrue if OK to advertise, EFalse otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   444
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   445
    IMPORT_C TBool AdvertisementStatus();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   446
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   447
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   448
     * Creates a channel of communication between local media (aComm) and
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   449
     * network
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   450
     * Local media object pointer also works as a connection ID for the
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   451
     * allocated channel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   452
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   453
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   454
     * @param aComm Pointer to opened local media RComm ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   455
     * @param aOwnerUid UID of the channel owner
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   456
     * @param aName Name for the channel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   457
     * @param aEnqueuedFail ETrue if enqueued failure, EFalse otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   458
     * @param aCorrection Pointer to object implementing buffer correction
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   459
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   460
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   461
    IMPORT_C void AllocateChannelL(
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   462
        RComm* aComm,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   463
        TUid aOwnerUid,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   464
        const TDesC8& aName,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   465
        TBool aEnqueuedFail,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   466
        MDunBufferCorrection* aCorrection=NULL );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   467
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   468
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   469
     * Creates a channel of communication between local media (aSocket) and
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   470
     * network
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   471
     * Local media object pointer also works as a connection ID for the
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   472
     * allocated channel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   473
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   474
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   475
     * @param aSocket Pointer to opened local media RSocket ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   476
     * @param aOwnerUid UID of the channel owner
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   477
     * @param aName Name for the channel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   478
     * @param aEnqueuedFail ETrue if enqueued failure, EFalse otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   479
     * @param aNoFreeChans ETrue if no free channels, EFalse otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   480
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   481
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   482
    IMPORT_C void AllocateChannelL(
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   483
        RSocket* aSocket,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   484
        TUid aOwnerUid,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   485
        const TDesC8& aName,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   486
        TBool aEnqueuedFail,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   487
        TBool& aNoFreeChans );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   488
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   489
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   490
     * Frees an allocated channel by local media (aComm) connection ID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   491
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   492
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   493
     * @param aComm Pointer to opened local media RComm ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   494
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   495
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   496
    IMPORT_C TInt FreeChannel( RComm* aComm );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   497
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   498
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   499
     * Frees an allocated channel by local media (aSocket) connection ID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   500
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   501
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   502
     * @param aSocket Pointer to opened local media RSocket ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   503
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   504
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   505
    IMPORT_C TInt FreeChannel( RSocket* aSocket );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   506
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   507
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   508
     * Issues transfer requests for all transfer objects by local media
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   509
     * (aComm) connection ID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   510
     * This will cause the Transporter by be ready for transferring data
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   511
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   512
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   513
     * @param aComm Pointer to opened local media RComm ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   514
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   515
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   516
    IMPORT_C void IssueTransferRequestsL( RComm* aComm );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   517
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   518
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   519
     * Issues transfer requests for all transfer objects by local media
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   520
     * (aSocket) connection ID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   521
     * This will cause the Transporter by be ready for transferring data
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   522
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   523
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   524
     * @param aSocket Pointer to opened local media RSocket ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   525
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   526
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   527
    IMPORT_C void IssueTransferRequestsL( RSocket* aSocket );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   528
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   529
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   530
     * Stops transfers for all transfer objects by local media (aComm)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   531
     * connection ID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   532
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   533
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   534
     * @param aComm Pointer to opened local media RComm ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   535
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   536
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   537
    IMPORT_C TInt StopTransfers( RComm* aComm );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   538
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   539
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   540
     * Stops transfers for all transfer objects by local media (aSocket)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   541
     * connection ID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   542
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   543
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   544
     * @param aSocket Pointer to opened local media RSocket ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   545
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   546
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   547
    IMPORT_C TInt StopTransfers( RSocket* aSocket );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   548
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   549
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   550
     * Adds connection monitor callback for either local media or network side
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   551
     * by connection ID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   552
     * Callbacks will be called read/write error is detected during endpoint
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   553
     * operation
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   554
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   555
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   556
     * @param aComm Pointer to opened local media RComm ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   557
     * @param aCallback Pointer to object whose callbacks will be called
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   558
     * @param aDirection Direction of operation to monitor for read/write error
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   559
     * @param aSignal ETrue if also signal notification wanted from network side
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   560
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   561
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   562
    IMPORT_C void AddConnMonCallbackL( RComm* aComm,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   563
                                       MDunConnMon* aCallback,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   564
                                       TDunDirection aDirection,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   565
                                       TBool aSignal );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   566
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   567
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   568
     * Adds connection monitor callback for either local media or network side
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   569
     * by connection ID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   570
     * Callbacks will be called when line status switches to high or low
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   571
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   572
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   573
     * @param aSocket Pointer to opened local media RSocket ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   574
     * @param aCallback Pointer to object whose callbacks will be called
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   575
     * @param aDirection Direction of operation to monitor for read/write error
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   576
     * @param aSignal ETrue if also signal notification wanted from network side
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   577
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   578
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   579
    IMPORT_C void AddConnMonCallbackL( RSocket* aSocket,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   580
                                       MDunConnMon* aCallback,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   581
                                       TDunDirection aDirection,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   582
                                       TBool aSignal );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   583
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   584
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   585
     * Adds error to consider as no error condition when doing any of the four
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   586
     * endpoint's read/writer operation
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   587
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   588
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   589
     * @param aError Error code to consider as "no error"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   590
     * @param aComm Pointer to opened local media RComm ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   591
     * @param aDirection One of four data transfer endpoints where to add a
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   592
     *                   skipped error code
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   593
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   594
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   595
    IMPORT_C void AddSkippedErrorL( TInt aError,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   596
                                    RComm* aComm,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   597
                                    TDunDirection aDirection );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   598
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   599
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   600
     * Adds error to consider as no error condition when doing any of the four
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   601
     * endpoint's read/writer operation
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   602
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   603
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   604
     * @param aError Error code to consider as "no error"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   605
     * @param aSocket Pointer to opened local media RSocket ID object
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   606
     * @param aDirection One of four data transfer endpoints where to add a
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   607
     *                   skipped error code
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   608
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   609
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   610
    IMPORT_C void AddSkippedErrorL( TInt aError,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   611
                                    RSocket* aSocket,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   612
                                    TDunDirection aDirection );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   613
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   614
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   615
     * Sets service advertisement monitor callback by owner UID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   616
     * Callbacks will be called when advertisement status changes.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   617
     * The callbacks are updated with every successfully completed
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   618
     * channel allocation/free (and allocation failure) so it is recommended
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   619
     * to call this method after AllocateChannelL().
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   620
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   621
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   622
     * @param aOwnerUid Owner's UID for which to have the monitor
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   623
     * @param aCallback Pointer to object whose callbacks will be called
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   624
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   625
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   626
    IMPORT_C void SetAdvertisementMonitorL( TUid aOwnerUid,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   627
                                            MDunServAdvMon* aCallback );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   628
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   629
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   630
     * Frees service advertisement monitor callback by owner UID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   631
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   632
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   633
     * @param aOwnerUid Owner's UID for which to have the monitor
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   634
     * @param aCallback Pointer to object whose callbacks will be called
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   635
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   636
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   637
    IMPORT_C TInt FreeAdvertisementMonitor( TUid aOwnerUid,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   638
                                            MDunServAdvMon* aCallback );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   639
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   640
private:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   641
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   642
    CDunTransporter( MDunPluginManager* aPluginManager,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   643
                     TInt aNumOfMaxChannels );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   644
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   645
    void ConstructL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   646
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   647
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   648
     * Initializes the transporter, must be called as the first operation
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   649
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   650
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   651
     * @return KErrAlreadyExists = already initialized,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   652
     *         KErrGeneral = network initialization failed,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   653
     *         KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   654
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   655
    TInt InitializeL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   656
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   657
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   658
     * UnInitializes the transporter, can be called as the last operation
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   659
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   660
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   661
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   662
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   663
    void UnInitialize();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   664
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   665
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   666
     * Initialize the transporter
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   667
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   668
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   669
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   670
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   671
    TInt InitializeOnDemand();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   672
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   673
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   674
     * UnInitialize the transporter
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   675
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   676
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   677
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   678
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   679
    TInt UnInitializeOnDemand();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   680
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   681
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   682
     * Returns index of media for connection ID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   683
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   684
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   685
     * @param aConnId Connection ID for media
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   686
     * @param aMediaContext Context of media to search for; either local or
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   687
     *                      network
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   688
     * @return Symbian error code on error, found index otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   689
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   690
    TInt GetMediaIndex( TConnId aConnId,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   691
                        TDunMediaContext aMediaContext=EDunMediaContextLocal );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   692
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   693
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   694
     * Returns index of media for connection ID
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   695
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   696
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   697
     * @param aConnId Connection ID for media
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   698
     * @param aMediaContext Context of media to search for; either local or
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   699
     *                      network
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   700
     * @return Found index
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   701
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   702
    TInt GetMediaIndexL( TConnId aConnId,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   703
                         TDunMediaContext aMediaContext=EDunMediaContextLocal );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   704
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   705
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   706
     * Checks initialization and RSubSessionBase() handle
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   707
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   708
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   709
     * @param aConnId Connection ID for media
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   710
     * @return KErrNotReady if not initialized, KErrBadHandle if no handle
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   711
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   712
    TInt CheckInitAndHandle( TConnId aConnId );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   713
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   714
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   715
     * Deletes own internal data
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   716
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   717
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   718
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   719
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   720
    void DeleteTransporter();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   721
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   722
private:  // data
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   723
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   724
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   725
     * Pointer to common utility class
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   726
     * Own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   727
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   728
    MDunTransporterUtility* iUtility;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   729
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   730
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   731
     * Pointer to RComm channel manager class
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   732
     * Own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   733
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   734
    CDunChanMan* iChanMan;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   735
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   736
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   737
     * Pointer to note handler class
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   738
     * Own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   739
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   740
    CDunNoteHandler* iNoteHandler;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   741
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   742
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   743
     * Array of abstractions of each "channel"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   744
     * One TDunChannelData entry contains objects needed for one channel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   745
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   746
    RArray<TDunChannelData> iChannelData;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   747
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   748
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   749
     * Array of service advertisement data for each plugin
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   750
     * One TDunServAdvData entry contains objects needed for one plugin
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   751
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   752
    RArray<TDunServAdvData> iServAdvData;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   753
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   754
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   755
     * Callback to call when notification via MDunPluginManager to be made
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   756
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   757
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   758
    MDunPluginManager* iPluginManager;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   759
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   760
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   761
     * Number of channels that are active
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   762
     * Used for updating KPSUidDialupConnStatus Pub&Sub key
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   763
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   764
    TInt iActiveChannels;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   765
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   766
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   767
     * Number of wanted maximum channels (can be omitted with 0)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   768
     * Used for initialization of this class
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   769
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   770
    TInt iNumOfMaxChannels;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   771
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   772
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   773
     * Indicates whether this class is initialized or not
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   774
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   775
    TBool iInitialized;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   776
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   777
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   778
     * Indicates whether or not it is OK to advertise services
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   779
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   780
    TBool iAdvertise;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   781
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   782
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   783
     * Instance of network side abstraction
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   784
     * Own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   785
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   786
    CDunNetDataport* iNetwork;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   787
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   788
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   789
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   790
#endif  // C_CDUNTRANSPORTER_H