localconnectivityservice/dun/utils/inc/DunUpstream.h
author hgs
Fri, 15 Oct 2010 15:05:57 +0800
changeset 54 4dc88a4ac6f4
parent 29 3ae5cb0b4c02
permissions -rw-r--r--
201041_02
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) 2007-2010 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:  Definitions needed for one "stream" of CDunTransporter
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_CDUNUPSTREAM_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    20
#define C_CDUNUPSTREAM_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    21
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    22
#include "DunTransUtils.h"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    23
#include "DunStream.h"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    24
#include "DunAtCmdHandler.h"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    25
#include "DunAtCmdEchoer.h"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    26
#include "DunDataPusher.h"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    27
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    28
class MDunCmdModeMonitor;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    30
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    31
 *  Class used for storing data related to activity monitoring
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    32
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    33
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    34
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    35
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    36
NONSHARABLE_CLASS( TDunActivityData )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    37
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    38
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    39
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    40
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    41
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    42
     * Callback to call when notification via MDunActivityManager to be made
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    43
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    44
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    45
    MDunActivityManager* iActivityCallback;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    46
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    47
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    48
     * Flag for data read activity's MDunActivityManager callback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    49
     * This flag is needed to prevent multiple notifications of same activity
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    50
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    51
    TBool iDataRead;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    52
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    53
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    54
     * Used as a flag for the first notification of read activity
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    55
     * This flag is needed to keep MDunActivityManager notifications in sync
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    56
     * (inactivity notification done only if activity notification done first)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    57
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    58
    TBool iNotified;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    59
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    60
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    61
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    62
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    63
 *  Class used for storing data related to AT command parsing
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    64
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    65
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    66
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    67
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    68
NONSHARABLE_CLASS( TDunParseData )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    69
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    70
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    71
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    72
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    73
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    74
     * Flag for command mode notifier's MDunCmdModeMonitor callback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    75
     * This flag is needed to mark command mode start/end for parse start/end
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    76
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    77
    TBool iDataMode;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    78
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    79
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    80
     * AT Command handler.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    81
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    82
    CDunAtCmdHandler* iAtCmdHandler;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    83
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    84
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    85
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    86
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    87
 *  Accessor class for AT command handling related functionality
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    88
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    89
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    90
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    91
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    92
NONSHARABLE_CLASS( MDunAtCmdHandler )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    93
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    94
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    95
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    96
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    97
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    98
     * Starts URC message handling
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    99
     * This is an accessor for CDunDownstream's StartStream()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   100
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   101
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   102
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   103
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   104
    virtual TInt StartUrc() = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   105
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   106
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   107
     * Stops AT command handling downstream related activity (also URC)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   108
     * This is an accessor for CDunDownstream's Stop()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   109
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   110
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   111
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   112
     */
54
4dc88a4ac6f4 201041_02
hgs
parents: 29
diff changeset
   113
    virtual void StopAtCmdHandling() = 0;
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   114
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   115
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   116
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   117
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   118
 *  Class for data transmission of one "stream" from local media to network
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   119
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   120
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   121
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   122
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   123
NONSHARABLE_CLASS( CDunUpstream ) : public CDunStream,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   124
                                    public MDunAtCmdHandler,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   125
                                    public MDunCmdModeMonitor,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   126
                                    public MDunAtCmdStatusReporter,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   127
                                    public MDunAtCmdEchoer
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   128
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   129
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   130
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   131
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   132
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   133
     * Two-phased constructor.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   134
     * @param aUtility Pointer to common utility class
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   135
     * @return Instance of self
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   136
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   137
	static CDunUpstream* NewL( MDunTransporterUtilityAux* aUtility );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   138
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   139
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   140
    * Destructor.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   141
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   142
    virtual ~CDunUpstream();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   143
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   144
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   145
     * Resets data to initial values
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   146
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   147
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   148
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   149
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   150
    void ResetData();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   151
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   152
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   153
     * Sets activity callback for this stream
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   154
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   155
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   156
     * @param aActivityCallback Pointer to activity callback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   157
     * @return KErrGeneral if callback null, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   158
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   159
    TInt SetActivityCallback( MDunActivityManager* aActivityCallback );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   160
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   161
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   162
     * Initializes this stream for AT command notifications
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   163
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   164
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   165
     * @param aStreamCallback Pointer to stream callback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   166
     * @param aConnectionName Connection identifier name
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   167
     * @param aCallbackUp Upstream callback to call when command mode starts or
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   168
     *                    ends
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   169
     * @param aCallbackDown Downstream callback to call when command mode starts
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   170
     *                    or ends
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   171
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   172
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   173
    TInt InitializeForAtParsing( MDunStreamManipulator* aStreamCallback,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   174
                                 const TDesC8* aConnectionName,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   175
                                 MDunCmdModeMonitor* aCallbackUp,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   176
                                 MDunCmdModeMonitor* aCallbackDown );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   177
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   178
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   179
     * Starts upstream by issuing read request
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   180
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   181
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   182
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   183
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   184
    TInt StartStream();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   185
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   186
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   187
     * Stops transfer for read & write endpoints
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   188
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   189
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   190
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   191
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   192
    TInt Stop();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   193
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   194
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   195
     * Data transmission state (if read completed)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   196
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   197
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   198
     * @return ETrue if data successfully read, EFalse otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   199
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   200
    TBool DataReadStatus();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   201
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   202
private:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   203
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   204
    CDunUpstream( MDunTransporterUtilityAux* aUtility );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   205
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   206
    void ConstructL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   207
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   208
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   209
     * Initializes this class
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   210
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   211
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   212
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   213
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   214
    void Initialize();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   215
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   216
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   217
     * Issues transfer request for this stream
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   218
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   219
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   220
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   221
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   222
    TInt IssueRequest();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   223
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   224
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   225
     * Processes data that was read
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   226
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   227
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   228
     * @return ETrue if request to be reissued, EFalse otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   229
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   230
    TBool ProcessReadData();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   231
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   232
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   233
     * Manages activity in a channel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   234
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   235
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   236
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   237
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   238
    TInt ManageChannelActivity();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   239
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   240
// from base class CActive
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   241
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   242
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   243
     * From CActive.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   244
     * Gets called when endpoint data read/write complete
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   245
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   246
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   247
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   248
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   249
    void RunL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   250
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   251
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   252
     * From CActive.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   253
     * Gets called on cancel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   254
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   255
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   256
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   257
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   258
    void DoCancel();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   259
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   260
// from base class MDunAtCmdStatusReporter
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   261
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   262
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   263
     * Notifies about parser's need to get more data
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   264
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   265
     * @since TB9.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   266
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   267
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   268
    void NotifyParserNeedsMoreData();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   269
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   270
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   271
     * Notifies about editor mode reply
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   272
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   273
     * @since TB9.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   274
     * @param aStart ETrue if start of editor mode, EFalse otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   275
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   276
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   277
    void NotifyEditorModeReply( TBool aStart );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   278
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   279
// from base class MDunAtCmdHandler
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   280
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   281
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   282
     * Starts URC message handling
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   283
     * This is an accessor for CDunDownstream's StartStream()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   284
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   285
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   286
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   287
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   288
    TInt StartUrc();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   289
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   290
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   291
     * Stops AT command handling downstream related activity (also URC)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   292
     * This is an accessor for CDunDownstream's Stop()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   293
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   294
     * @since S60 3.2
54
4dc88a4ac6f4 201041_02
hgs
parents: 29
diff changeset
   295
     * @return None
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   296
     */
54
4dc88a4ac6f4 201041_02
hgs
parents: 29
diff changeset
   297
    void StopAtCmdHandling();
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   298
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   299
// from base class MDunCmdModeMonitor
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   300
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   301
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   302
     * Notifies about command mode start
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   303
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   304
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   305
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   306
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   307
    void NotifyCommandModeStart();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   308
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   309
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   310
     * Notifies about command mode end
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   311
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   312
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   313
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   314
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   315
    void NotifyCommandModeEnd();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   316
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   317
// from base class MDunAtCmdEchoer
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   318
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   319
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   320
     * Notifies about completed echo in text mode
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   321
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   322
     * @since TB9.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   323
     * @return None
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   324
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   325
    void NotifyEchoComplete();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   326
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   327
private:  // data
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   328
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   329
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   330
     * Pointer to common utility class
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   331
     * Not own.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   332
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   333
    MDunTransporterUtilityAux* iUtility;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   334
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   335
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   336
     * Data related to activity monitoring
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   337
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   338
    TDunActivityData iActivityData;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   339
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   340
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   341
     * Data related to AT command parsing
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   342
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   343
    TDunParseData iParseData;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   344
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   345
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   346
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   347
#endif  // C_CDUNUPSTREAM_H