localconnectivityservice/dun/utils/inc/DunPlugin.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) 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:  Common definitions and classes needed by DUN plugins
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 DUN_PLUGIN_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    20
#define DUN_PLUGIN_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
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    24
typedef TAny* TConnId;  // supported now: RSocket*, RComm*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    25
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    26
enum TDunPluginState
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    27
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    28
    EDunStateNone = KErrNotFound,  // -1
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    29
    EDunStateZombie = 0,           //  0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    30
    EDunStateTryUninitialize,      //  1
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    31
    EDunStateUninitialized,        //  2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    32
    EDunStateTryLoad,              //  3
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    33
    EDunStateLoaded,               //  4
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    34
    EDunStateTryListen,            //  5
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    35
    EDunStateListening,            //  6
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    36
    EDunStateTryChannel,           //  7
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    37
    EDunStateChanneled             //  8
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    38
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    39
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    40
const TInt KDunLocalMediaPluginInterfaceUidValue = 0x101F6E2D;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    41
const TUid KDunLocalMediaPluginInterfaceUid      = { KDunLocalMediaPluginInterfaceUidValue };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    42
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    43
const TInt KDunBtPluginUidValue   = 0x101F6E2B;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    44
const TUid KDunBtPluginUid        = { KDunBtPluginUidValue };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    45
const TInt KDunIrPluginUidValue   = 0x101FBAEB;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    46
const TUid KDunIrPluginUid        = { KDunIrPluginUidValue };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    47
const TInt KDunUsbPluginUidValue  = 0x101F6E2F;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    48
const TUid KDunUsbPluginUid       = { KDunUsbPluginUidValue };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    49
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    50
class CDunTransporter;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    51
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    52
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    53
 *  Notification interface class to report request for plugin enqueue
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    54
 *  This reqeust is made when there are not enough network resources for a
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    55
 *  certain plugin's needs
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    56
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    57
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    58
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    59
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    60
NONSHARABLE_CLASS( MDunPluginManager )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    61
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    62
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    63
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    64
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    65
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    66
     * Gets called when old plugin should be enqueued
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    67
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    68
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    69
     * @param aPluginUid UID of the plugin that should be enqueued
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    70
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    71
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    72
    virtual TInt NotifyPluginEnqueueRequest( TUid aPluginUid ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    73
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    74
     /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    75
     * Gets called when new plugin should be dequeued
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    76
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    77
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    78
     * @param aPluginUid UID of the local media plugin to dequeue
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    79
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    80
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    81
    virtual TInt NotifyPluginDequeueRequest( TUid aPluginUid ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    82
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    83
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    84
     * Get callen when plugin should be closed
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    85
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    86
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    87
     * @param aPluginUid UID of the local media plugin to close
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    88
     * @param aSelfClose ETrue if plugin closes itself, EFalse otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    89
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    90
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    91
    virtual TInt NotifyPluginCloseRequest( TUid aPluginUid,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    92
                                           TBool aSelfClose ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    93
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    94
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    95
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    96
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    97
 *  Interface class for accessing CDunServer's functionality
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    98
 *  Shares basic interface for all plugins to use when plugin needs to access
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    99
 *  server's functionality
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   100
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   101
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   102
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   103
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   104
NONSHARABLE_CLASS( MDunServerCallback ) : public MDunPluginManager
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   105
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   106
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   107
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   108
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   109
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   110
     * Callback from plugins to server to get a plugin's state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   111
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   112
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   113
     * @param aPluginUid Plugin's UID which state to get
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   114
     * @return Plugin's state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   115
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   116
    virtual TDunPluginState GetPluginStateByUid( TUid aPluginUid ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   117
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   118
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   119
     * Callback from plugins to server to set a new state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   120
     * New state must be one more than the old state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   121
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   122
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   123
     * @param aPluginState New state to set for a plugin
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   124
     * @param aPluginUid Plugin's UID for which to change state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   125
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   126
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   127
    virtual TInt NotifyPluginStateChangeUp( TDunPluginState aPluginState,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   128
                                            TUid aPluginUid ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   129
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   130
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   131
     * Callback from plugins to server to set a new state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   132
     * New state must be one less than the old state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   133
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   134
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   135
     * @param aPluginState New state to set for a plugin
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   136
     * @param aPluginUid Plugin's UID for which to change state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   137
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   138
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   139
    virtual TInt NotifyPluginStateChangeDown( TDunPluginState aPluginState,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   140
                                              TUid aPluginUid ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   141
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   142
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   143
     * Callback from plugins to server to restart a plugin
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   144
     * Restarting must be done by uninitialization->listening switch since
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   145
     * context is in plugin
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
     * @param aPluginUid Plugin's UID to restart
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   149
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   150
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   151
    virtual TInt NotifyPluginRestart( TUid aPluginUid ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   152
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   153
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   154
     * Callback from plugins to server to reopen a plugin from queue
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   155
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   156
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   157
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   158
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   159
    virtual TInt NotifyPluginReopenRequest() = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   160
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   161
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   162
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   163
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   164
 *  Interface class for accessing plugins' functionality
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   165
 *  Shares basic interface for server to use when server needs to access
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   166
 *  plugin's functionality
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   167
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   168
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   169
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   170
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   171
NONSHARABLE_CLASS( MDunLocalMediaPlugin )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   172
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   173
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   174
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   175
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   176
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   177
     * Destructor. Derived class must have virtual destructor also as a plugin
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   178
     * module is always destructed via M-class.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   179
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   180
    inline virtual ~MDunLocalMediaPlugin() {};
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   181
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   182
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   183
     * Symbian 2nd phase constructor.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   184
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   185
    virtual void ConstructL( MDunServerCallback* aServer,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   186
                             CDunTransporter* aTransporter ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   187
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   188
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   189
     * Callback from server to plugins to notify when server changes a
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   190
     * plugin's state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   191
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   192
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   193
     * @param aPluginState New changed state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   194
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   195
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   196
    virtual TInt NotifyServerStateChange( TDunPluginState aPluginState ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   197
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   198
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   199
     * Callback from server to plugins to ask for current active connection
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   200
     * (For testing purposes only)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   201
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   202
     * @since S60 5.0
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   203
     * @return Active connection, NULL otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   204
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   205
    virtual TConnId ActiveConnection() = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   206
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   207
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   208
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   209
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   210
 *  Interface class for accessing plugin's main class when its listener
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   211
 *  reports that channel can be created. Can be used also to notify plugin's
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   212
 *  main class when channel can be deleted.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   213
 *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   214
 *  @lib dunutils.lib
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   215
 *  @since S60 v3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   216
 */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   217
NONSHARABLE_CLASS( MDunListenCallback )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   218
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   219
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   220
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   221
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   222
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   223
     * Callback from plugin's listener to plugin to notify about need to
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   224
     * allocate new channel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   225
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   226
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   227
     * @param aNoFreeChan ETrue if no free channels, EFalse otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   228
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   229
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   230
    virtual TInt NotifyChannelAllocate( TBool& aNoFreeChans ) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   231
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   232
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   233
     * Callback from plugin's listener to plugin to notify about need to free
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   234
     * an existing channel
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   235
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   236
     * @since S60 3.2
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   237
     * @return Symbian error code on error, KErrNone otherwise
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   238
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   239
    virtual TInt NotifyChannelFree() = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   240
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   241
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   242
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   243
#endif // DUN_PLUGIN_H