localconnectivityservice/dun/utils/inc/DunTransUtils.h
branchRCL_3
changeset 39 4096754ee773
parent 38 3dcb815346df
child 40 52a167391590
--- a/localconnectivityservice/dun/utils/inc/DunTransUtils.h	Thu Aug 19 10:46:39 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,531 +0,0 @@
-/*
-* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Utility class for other CDunTransporter classes
-*
-*/
-
-
-#ifndef C_CDUNTRANSUTILS_H
-#define C_CDUNTRANSUTILS_H
-
-#include "DunTransporter.h"
-
-/**
- *  Notification interface class for managing channel's activity
- *  This class is needed to update KPSUidDialupConnStatus pub&sub key
- *
- *  @lib dunutils.lib
- *  @since S60 v3.2
- */
-NONSHARABLE_CLASS( MDunActivityManager )
-    {
-
-public:
-
-    /**
-     * CDunTransporter callback: gets called when activity is detected on a
-     * channel
-     *
-     * @since S60 3.2
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    virtual TInt NotifyChannelActivity() = 0;
-
-    /**
-     * CDunTransporter callback: gets called when inactivity is detected on a
-     * channel
-     *
-     * @since S60 3.2
-     * @return KErrGeneral if mismatch in channel activity, KErrNone otherwise
-     */
-    virtual TInt NotifyChannelInactivity() = 0;
-
-    };
-
-/**
- *  Utility accessor class for CDunTransporter class itself
- *  Shares basic functionality of CDunTransporter by simplifying it
- *
- *  @lib dunutils.lib
- *  @since S60 v3.2
- */
-NONSHARABLE_CLASS( MDunTransporterUtility )
-    {
-
-public:
-
-    /**
-     * Initializes first free channel
-     *
-     * @since S60 3.2
-     * @param aLocalIdNew Identifier of the new local endpoint
-     * @return Symbian error code on error, found index otherwise
-     */
-    virtual TInt InitializeFirstFreeChannel( TConnId aLocalIdNew ) = 0;
-
-    /**
-     * Allocates a channel by creating and setting local media independent
-     * objects
-     * This is a common method used by exported local media dependent methods
-     *
-     * @since S60 3.2
-     * @param aBufferLength Buffer length selected for this channel
-     * @param aFirstFree Index to first free channel data
-     * @param aCorrection Pointer to object implementing buffer correction
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    virtual void DoAllocateChannelL(
-        RComm* aComm,
-        TInt& aBufferLength,
-        TInt aFirstFree,
-        MDunBufferCorrection* aCorrection ) = 0;
-
-    /**
-     * Adds connection monitor callback for either local media or network side
-     * by connection ID
-     * Error will be added to aIndex:th endpoint
-     *
-     * @since S60 3.2
-     * @param aIndex Index where to add new connection monitor callback
-     * @param aCallback Pointer to object whose callbacks will be called
-     * @param aDirection Direction of operation to monitor for read/write error
-     * @param aSignal Receive also signal change if ETrue
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    virtual TInt DoAddConnMonCallback( TInt aIndex,
-                                       MDunConnMon* aCallback,
-                                       TDunDirection aDirection,
-                                       TBool aSignal ) = 0;
-
-    /**
-     * Adds error to consider as no error condition when doing any of the four
-     * endpoint's read/writer operation
-     * Error will be added to aIndex:th endpoint
-     *
-     * @since S60 3.2
-     * @param aIndex Index where to add new "no error" code
-     * @param aError Error code to consider as "no error"
-     * @param aDirection One of four data transfer endpoints where to add a
-     *                   skipped error code
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    virtual TInt DoAddSkippedError( TInt aIndex,
-                                    TInt aError,
-                                    TDunDirection aDirection ) = 0;
-
-    /**
-     * Issues transfers requests for aIndex:th transfer objects
-     *
-     * @since S60 3.2
-     * @param aIndex Index to transfer objects that will be activated
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    virtual TInt DoIssueTransferRequests( TInt aIndex ) = 0;
-
-    /**
-     * Stops transfers for aIndex:th transfer objects
-     *
-     * @since S60 3.2
-     * @param aIndex Index to transfer objects that will be stopped
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    virtual TInt DoStopTransfers( TInt aIndex ) = 0;
-
-    /**
-     * Free aIndex:th channel's objects
-     *
-     * @since S60 3.2
-     * @param aIndex Index of channel to free
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    virtual TInt DoFreeChannel( TInt aIndex ) = 0;
-
-    };
-
-/**
- *  Utility accessor class for other than CDunTransporter classes
- *  Basically a collection of miscellaneous helper methods
- *
- *  @lib dunutils.lib
- *  @since S60 v3.2
- */
-NONSHARABLE_CLASS( MDunTransporterUtilityAux )
-    {
-
-public:
-
-    /**
-     * Gets local ID counterpart of a network ID
-     *
-     * @since S60 3.2
-     * @param aComm Network ID to search for
-     * @return Null if ID not found, otherwise found ID
-     */
-    virtual TConnId GetLocalId( RComm* aComm ) = 0;
-
-    /**
-     * Notifies when serious read/write error is detected on a connection
-     *
-     * @since S60 3.2
-     * @param aComm Non-null if error on RComm
-     * @param aSocket Non-null if error on RSocket
-     * @param aConnReason Reason of connection error
-     * @param aCallbacks Callbacks to notify on connections error
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    virtual TInt DoNotifyConnectionNotOk(
-        RComm* aComm,
-        RSocket* aSocket,
-        TDunConnectionReason& aConnReason,
-        RPointerArray<MDunConnMon>& aCallbacks) = 0;
-
-    };
-
-/**
- *  Utility class for other CDunTransporter classes
- *  This class implements basic functionality that is shared by different
- *  CDunTransporter classes, also for simplifying CDunTransporter itself
- *
- *  @lib dunutils.lib
- *  @since S60 v3.2
- */
-NONSHARABLE_CLASS( CDunTransUtils ) : public CBase,
-                                      public MDunActivityManager,
-                                      public MDunTransporterUtility,
-                                      public MDunTransporterUtilityAux
-    {
-
-public:
-
-    /**
-     * Two-phased constructor.
-     * @param aParent Parent class owning this friend class (CDunTransporter)
-     * @param aPluginManager Callback to call when notification via
-     *                       MDunPluginManager to be made
-     * @return Instance of self
-     */
-	static CDunTransUtils* NewL( CDunTransporter& aParent,
-	                             MDunPluginManager* aPluginManager );
-
-    /**
-    * Destructor.
-    */
-    virtual ~CDunTransUtils();
-
-private:
-
-    CDunTransUtils( CDunTransporter& aParent,
-                    MDunPluginManager* aPluginManager );
-
-    void ConstructL();
-
-    /**
-     * Manages service advertisement status changes
-     *
-     * @since S60 5.0
-     * @param aAdvertise New advertisement status
-     * @param aCreation ETrue if channel creation
-     *                  EFalse if channel free
-     * @return None
-     */
-    void ManageAdvertisementStatusChange( TBool aAdvertise,
-                                          TBool aCreation=EFalse );
-
-    /**
-     * Creates empty channel data
-     *
-     * @since S60 3.2
-     * @param aChannel Channel data to set empty
-     * @return None
-     */
-    void CreateEmptyChannelData( TDunChannelData& aChannel );
-
-    /**
-     * Creates new buffer if source buffer defined, otherwise already existing
-     * buffer will be used
-     *
-     * @since S60 3.2
-     * @param aSrcBuffer Source buffer
-     * @param aSrcPtr Pointer to source buffer
-     * @param aDstBuffer Destination buffer
-     * @param aDstPtr Pointer to destination buffer
-     * @param aItemsInCs Items in cleanup stack, will be incremented if
-     *                   necessary
-     * @return None
-     */
-    void DoCreateBufferLC( TUint8* aSrcBuffer,
-                           TPtr8* aSrcPtr,
-                           TUint8*& aDstBuffer,
-                           TPtr8*& aDstPtr,
-                           TInt aBufferLength,
-                           TInt& aItemsInCs );
-
-    /**
-     * Creates new signal copy object if source defined, otherwise
-     * already existing will be used
-     *
-     * @since S60 3.2
-     * @param aSrcSignalCopy Source signal copy object
-     * @param aDstSignalCopy Destination signal copy object
-     * @param aItemsInCs Items in cleanup stack, will be incremented if
-     *                   necessary
-     * @return None
-     */
-    void DoCreateSignalCopyLC( CDunSignalCopy* aSrcSignalCopy,
-                               CDunSignalCopy*& aDstSignalCopy,
-                               TInt& aItemsInCs );
-
-    /**
-     * Creates new signal notify object if source defined, otherwise
-     * already existing will be used
-     *
-     * @since S60 3.2
-     * @param aSrcSignalNotify Source signal notify object
-     * @param aDstSignalNotify Destination signal notify object
-     * @param aItemsInCs Items in cleanup stack, will be incremented if
-     *                   necessary
-     * @return None
-     */
-    void DoCreateSignalNotifyLC( CDunSignalNotify* aSrcSignalNotify,
-                                 CDunSignalNotify*& aDstSignalNotify,
-                                 TInt& aItemsInCs );
-
-    /**
-     * Creates transfer objects for reader and writer if sources defined,
-     * otherwise already existing ones will be used
-     *
-     * @since S60 3.2
-     * @param aSrcReader Source reader object
-     * @param aDstReader Destination reader object
-     * @param aItemsInCs Items in cleanup stack, will be incremented if
-     *                   necessary
-     * @return None
-     */
-    void DoCreateUpTransferObjectL( CDunUpstream* aSrcReader,
-                                    CDunUpstream*& aDstReader,
-                                    TInt& aItemsInCs );
-
-    /**
-     * Creates transfer objects for reader and writer if sources defined,
-     * otherwise already existing ones will be used
-     *
-     * @since S60 3.2
-     * @param aSrcReader Source reader object
-     * @param aDstReader Destination reader object
-     * @param aItemsInCs Items in cleanup stack, will be incremented if
-     *                   necessary
-     * @return None
-     */
-    void DoCreateDownTransferObjectL( CDunDownstream* aSrcReader,
-                                      CDunDownstream*& aDstReader,
-                                      TInt& aItemsInCs );
-
-    /**
-     * Resets/frees network data of aIndex:th channel
-     *
-     * @since S60 3.2
-     * @param aIndex Index of channel to reset/free
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt DeleteOneNetworkData( TInt aIndex );
-
-    /**
-     * Deletes local data of aIndex:th channel
-     *
-     * @since S60 3.2
-     * @param aIndex Index of channel to delete
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt DeleteOneLocalData( TInt aIndex );
-
-    /**
-     * Deletes buffering objects of aIndex:th channel
-     *
-     * @since S60 3.2
-     * @param aIndex Index of channel to delete
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt DeleteBuffering( TInt aIndex );
-
-// from base class MDunTransporterUtility
-
-    /**
-     * From MDunTransporterUtility.
-     * Initializes first free channel
-     *
-     * @since S60 3.2
-     * @param aLocalIdNew Identifier of the new local endpoint
-     * @return Symbian error code on error, found index otherwise
-     */
-    TInt InitializeFirstFreeChannel( TConnId aLocalIdNew );
-
-    /**
-     * From MDunTransporterUtility.
-     * Allocates a channel by creating and setting local media independent
-     * objects
-     * This is a common method used by exported local media dependent methods
-     *
-     * @since S60 3.2
-     * @param aBufferLength Buffer length selected for this channel
-     * @param aFirstFree Index to first free channel data
-     * @param aCorrection Pointer to object implementing buffer correction
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    void DoAllocateChannelL( RComm* aComm,
-                             TInt& aBufferLength,
-                             TInt aFirstFree,
-                             MDunBufferCorrection* aCorrection );
-
-    /**
-     * From MDunTransporterUtility.
-     * Adds connection monitor callback for either local media or network side
-     * by connection ID
-     * Connection monitor will be added to aIndex:th endpoint
-     *
-     * @since S60 3.2
-     * @param aIndex Index where to add new connection monitor callback
-     * @param aCallback Pointer to object whose callbacks will be called
-     * @param aDirection Direction of operation to monitor for read/write error
-     * @param aSignal Receive also signal change if ETrue
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt DoAddConnMonCallback( TInt aIndex,
-                               MDunConnMon* aCallback,
-                               TDunDirection aDirection,
-                               TBool aSignal );
-
-    /**
-     * From MDunTransporterUtility.
-     * Adds error to consider as no error condition when doing any of the four
-     * endpoint's read/writer operation
-     * Error will be added to aIndex:th endpoint
-     *
-     * @since S60 3.2
-     * @param aIndex Index where to add new "no error" code
-     * @param aError Error code to consider as "no error"
-     * @param aDirection One of four data transfer endpoints where to add a
-     *                   skipped error code
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt DoAddSkippedError( TInt aIndex,
-                            TInt aError,
-                            TDunDirection aDirection );
-
-    /**
-     * From MDunTransporterUtility.
-     * Issues transfers requests for aIndex:th transfer objects
-     *
-     * @since S60 3.2
-     * @param aIndex Index to transfer objects that will be activated
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt DoIssueTransferRequests( TInt aIndex );
-
-    /**
-     * From MDunTransporterUtility.
-     * Stops transfers for aIndex:th transfer objects
-     *
-     * @since S60 3.2
-     * @param aIndex Index to transfer objects that will be stopped
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt DoStopTransfers( TInt aIndex );
-
-    /**
-     * From MDunTransporterUtility.
-     * Free aIndex:th channel's objects
-     *
-     * @since S60 3.2
-     * @param aIndex Index of channel to free
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt DoFreeChannel( TInt aIndex );
-
-// from base class MDunTransporterUtilityAux
-
-    /**
-     * From MDunTransporterUtilityAux.
-     * Gets local ID counterpart of a network ID
-     *
-     * @since S60 3.2
-     * @param aComm Network ID to search for
-     * @return Null if ID not found, otherwise found ID
-     */
-    TConnId GetLocalId( RComm* aComm );
-
-    /**
-     * From MDunTransporterUtilityAux.
-     * Notifies when serious read/write error is detected on a connection
-     *
-     * @since S60 3.2
-     * @param aComm Non-null if error on RComm
-     * @param aSocket Non-null if error on RSocket
-     * @param aConnReason Reason of connection error
-     * @param aCallbacks Callbacks to notify on connections error
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt DoNotifyConnectionNotOk(
-        RComm* aComm,
-        RSocket* aSocket,
-        TDunConnectionReason& aConnReason,
-        RPointerArray<MDunConnMon>& aCallbacks);
-
-// from base class MDunActivityManager
-
-    /**
-     * From MDunActivityManager.
-     * Notifies about activity on a channel
-     *
-     * @since S60 3.2
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt NotifyChannelActivity();
-
-    /**
-     * From MDunActivityManager.
-     * Notifies about inactivity on a channel
-     *
-     * @since S60 3.2
-     * @return Symbian error code on error, KErrNone otherwise
-     */
-    TInt NotifyChannelInactivity();
-
-private:  // data
-
-    /**
-     * Parent class owning this friend class (CDunTransporter)
-     */
-    CDunTransporter& iParent;
-
-    /**
-     * Array of abstractions of each "channel" (from parent iParent)
-     * One TDunChannelData entry contains objects needed for one channel
-     */
-    RArray<TDunChannelData>& iChannelData;
-
-    /**
-     * Array of service advertisement data for each plugin (from parent iParent)
-     * One TDunServAdvData entry contains objects needed for one plugin
-     */
-    RArray<TDunServAdvData>& iServAdvData;
-
-    /**
-     * Callback to call when notification via MDunPluginManager to be made
-     * Not own.
-     */
-    MDunPluginManager* iPluginManager;
-
-    };
-
-#endif  // C_CDUNTRANSUTILS_H