connectivitylayer/isce/isirouter_dll/inc/isicltransceiver.h
author mikaruus
Tue, 19 Oct 2010 13:16:20 +0300
changeset 9 8486d82aef45
parent 7 fa67e03b87df
permissions -rw-r--r--
modemadaptation release 2010wk40
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     1
/*
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     3
* All rights reserved.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     8
*
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     9
* Initial Contributors:
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    11
*
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    12
* Contributors:
5
8ccc39f9d787 New release based on our 2010wk02 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 0
diff changeset
    13
*
8ccc39f9d787 New release based on our 2010wk02 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 0
diff changeset
    14
* Description:
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    15
*
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    16
*/
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    17
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    18
#ifndef __ISICLTRANSCEIVER_H__
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    19
#define __ISICLTRANSCEIVER_H__
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    20
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    21
#include "misilinkrouterif.h"           // For MISILinkRouterIf
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    22
#include "isiinternaldefs.h"            // For KMaxNumOfObjId
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    23
#include "misirouterservicerouterif.h"  // For MISIRouterServiceRouterIf
7
fa67e03b87df New release based on our 2010wk08 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 5
diff changeset
    24
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    25
class MISIRouterLinkIf;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    26
class DISIRouter;
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    27
class DIsiRouterService;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    28
class DISIMsgQueue;
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    29
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    30
NONSHARABLE_CLASS( DISICLTransceiver ) : public DBase, public MISILinkRouterIf, public MISIRouterServiceRouterIf
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    31
    {
5
8ccc39f9d787 New release based on our 2010wk02 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 0
diff changeset
    32
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    33
    public:
5
8ccc39f9d787 New release based on our 2010wk02 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 0
diff changeset
    34
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    35
        DISICLTransceiver( DISIRouter& aRouter, TDfcQue* aThreadPtr );
5
8ccc39f9d787 New release based on our 2010wk02 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 0
diff changeset
    36
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    37
        ~DISICLTransceiver();
5
8ccc39f9d787 New release based on our 2010wk02 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 0
diff changeset
    38
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    39
        // See comments from MISILinkRouterIf
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    40
        TInt RouteISIMessage( TDes8& aMessage, TBool aDynamicSenderCheckNeeded = ETrue );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    41
        
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    42
        void ReceiveISIMessage( const TDesC8& aMessage, const TUint8 aTrxId );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    43
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    44
        // See comments from MISILinkRouterIf
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    45
        void StateChanged();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    46
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    47
        // From MISIRouterServiceRouterIf
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    48
        void GetDeviceConnectionStates( RArray<TUint8>& aDeviceIdentifierList, const TBool aConnectedDevice );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    49
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    50
    private:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    51
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    52
        static void StateChangedDfc( TAny* aPtr );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    53
        
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    54
        static void RxQueueDfc( TAny* aPtr );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    55
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    56
        TInt ValidateISIMessage( TDes8& aMessage );
5
8ccc39f9d787 New release based on our 2010wk02 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 0
diff changeset
    57
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    58
        void ReadStateChanges();
5
8ccc39f9d787 New release based on our 2010wk02 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 0
diff changeset
    59
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    60
        // Responsibility to deallocate the message is transferred.
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    61
        TInt SendCommIsaEntityNotReachableResp( TDes8& aNotDeliveredMessage );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    62
        
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    63
        TBool DynamicDevice( const TUint8 aDevId );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    64
        
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    65
        void UpdateDynamicDeviceTable( const TUint8 aDynamicDevId, const TUint8 aStaticDevId );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    66
        
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    67
        void DynamicToStaticDevice( TUint8& aRxDev );
5
8ccc39f9d787 New release based on our 2010wk02 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 0
diff changeset
    68
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    69
        NONSHARABLE_CLASS( DISIDevice ) : public DBase
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    70
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    71
            public:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    72
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    73
                DISIDevice( const TUint8 aDeviceIdentifier, MISIRouterLinkIf* aLink );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    74
                ~DISIDevice();
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    75
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    76
                MISIRouterLinkIf* GetLink();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    77
                TUint8 GetDeviceIdentifier();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    78
                TBool GetDeviceState();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    79
                TBool GetDeviceOldState();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    80
                void SetDeviceOldState( TBool aConnected );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    81
                // Shall be called before accessing operations.
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    82
                void LockDeviceFM();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    83
                // Shall be called after accessing operations.
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    84
                void FreeDeviceFM();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    85
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    86
            private:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    87
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    88
                // Owned, synch internally
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    89
                NFastMutex*                 iShDeviceMutex;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    90
                // Not owned, synch by above mutex.
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    91
                MISIRouterLinkIf*   iShLink;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    92
                // Synch by above mutex.
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    93
                TUint8              iShDeviceIdentifier;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    94
                // Synch by above mutex.
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    95
                TBool               iShOldDeviceConnectedState;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    96
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    97
            };
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    98
            
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
    99
                //private:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   100
        NONSHARABLE_CLASS( TDynamicDevice )
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   101
            {
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   102
            public:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   103
                TDynamicDevice( const TUint8 aDynamicDevId, TUint8 aStaticDevId ){iDynamicDevId = aDynamicDevId; iStaticDevId = aStaticDevId;};
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   104
                TUint8 iDynamicDevId;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   105
                TUint8 iStaticDevId;
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   106
            };
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   107
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   108
        // Additional coding convention iSh-prefix means a member variable shared between N threads.
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   109
        // Owned, called in N thread context
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   110
        RPointerArray<DISIDevice> iShDevices;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   111
        // Called in N thread context
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   112
        DISIRouter&               iShRouter;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   113
        // Owned, no need to synch only accessed from below DFC function.
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   114
        DIsiRouterService*        iRouterService;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   115
        // Owned, accessed from N threads no need to synch synch handled internally in TDfc class 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   116
        TDfc*                     iShStateChangedDfc;
7
fa67e03b87df New release based on our 2010wk08 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents: 5
diff changeset
   117
        
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   118
        TDfc*                     iRxQueueDfc;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   119
        
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   120
        RArray< TDynamicDevice* > iDynamicDeviceTable;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   121
        
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   122
        DISIMsgQueue*             iRxQueue;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   123
        
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   124
        static DMutex*            iDynamicDeviceTableMutex;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   125
       
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   126
        TUint8                    iDevPcLastSendTrxId;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 7
diff changeset
   127
        TUint8                    iDevPcLastActiveTrxId;
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   128
    };
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   129
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   130
#endif /* __ISICLTRANSCEIVER_H__ */
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   131