adaptationlayer/tsy/simatktsy_dll/src/ber_tlv.cpp
changeset 9 8486d82aef45
parent 5 8ccc39f9d787
equal deleted inserted replaced
8:6295dc2169f3 9:8486d82aef45
    40 void TTlvBase::Begin
    40 void TTlvBase::Begin
    41         (
    41         (
    42         TUint8 aTag //tag
    42         TUint8 aTag //tag
    43         )
    43         )
    44     {
    44     {
    45     OstTrace0( TRACE_DETAILED, TTLVBASE_BEGIN, "TTlvBase::Begin" );
    45     OstTrace0( TRACE_INTERNALS,  TTLVBASE_BEGIN_TD, "TTlvBase::Begin" );
    46     TFLOGSTRING("TSY: TTlvBase::Begin");
    46     TFLOGSTRING("TSY: TTlvBase::Begin");
    47     iData.Zero();
    47     iData.Zero();
    48     iData.Append( aTag );
    48     iData.Append( aTag );
    49     iData.Append( 0 );
    49     iData.Append( 0 );
    50     }
    50     }
    57 void TTlvBase::AddTag
    57 void TTlvBase::AddTag
    58         (
    58         (
    59         TUint8 aTag //tag
    59         TUint8 aTag //tag
    60         )
    60         )
    61     {
    61     {
    62     OstTrace0( TRACE_DETAILED, TTLVBASE_ADDTAG, "TTlvBase::AddTag" );
    62     OstTrace0( TRACE_INTERNALS,  TTLVBASE_ADDTAG_TD, "TTlvBase::AddTag" );
    63     TFLOGSTRING("TSY: TTlvBase::AddTag");
    63     TFLOGSTRING("TSY: TTlvBase::AddTag");
    64     iData.Append( aTag );           // tag
    64     iData.Append( aTag );           // tag
    65     iData.Append( 0 );              // length
    65     iData.Append( 0 );              // length
    66     iLenIndex = iData.Length() - 1; // index to tag length
    66     iLenIndex = iData.Length() - 1; // index to tag length
    67     }
    67     }
    74 void TTlvBase::AddByte
    74 void TTlvBase::AddByte
    75         (
    75         (
    76         TUint8 aValue
    76         TUint8 aValue
    77         )
    77         )
    78     {
    78     {
    79     OstTrace0( TRACE_DETAILED, TTLVBASE_ADDBYTE, "TTlvBase::AddByte" );
    79     OstTrace0( TRACE_INTERNALS,  TTLVBASE_ADDBYTE_TD, "TTlvBase::AddByte" );
    80     TFLOGSTRING("TSY: TTlvBase::AddByte");
    80     TFLOGSTRING("TSY: TTlvBase::AddByte");
    81     iData.Append( aValue );
    81     iData.Append( aValue );
    82     iData[iLenIndex]++;
    82     iData[iLenIndex]++;
    83     }
    83     }
    84 
    84 
    90 void TTlvBase::AddData
    90 void TTlvBase::AddData
    91         (
    91         (
    92         const TDesC8& aValue
    92         const TDesC8& aValue
    93         )
    93         )
    94     {
    94     {
    95     OstTrace0( TRACE_DETAILED, TTLVBASE_ADDDATA, "TTlvBase::AddData" );
    95     OstTrace0( TRACE_INTERNALS,  TTLVBASE_ADDDATA_TD, "TTlvBase::AddData" );
    96     TFLOGSTRING("TSY: TTlvBase::AddData");
    96     TFLOGSTRING("TSY: TTlvBase::AddData");
    97     iData.Append( aValue );
    97     iData.Append( aValue );
    98     iData[iLenIndex] = TUint8(iData[iLenIndex] + aValue.Length());
    98     iData[iLenIndex] = TUint8(iData[iLenIndex] + aValue.Length());
    99     }
    99     }
   100 
   100 
   106 // returns descriptor to the new valid ber-tlv.
   106 // returns descriptor to the new valid ber-tlv.
   107 // -----------------------------------------------------------------------------
   107 // -----------------------------------------------------------------------------
   108 //
   108 //
   109 const TDesC8& TTlvBase::End()
   109 const TDesC8& TTlvBase::End()
   110     {
   110     {
   111     OstTrace0( TRACE_DETAILED, TTLVBASE_END, "TTlvBase::End" );
   111     OstTrace0( TRACE_INTERNALS,  TTLVBASE_END_TD, "TTlvBase::End" );
   112     TFLOGSTRING("TSY: TTlvBase::End");
   112     TFLOGSTRING("TSY: TTlvBase::End");
   113 
   113 
   114     _LIT8( KLenTag, "\x81" );
   114     _LIT8( KLenTag, "\x81" );
   115 
   115 
   116     TInt i( 3 ); // index to tag length
   116     TInt i( 3 ); // index to tag length
   147 // used without top level tag.
   147 // used without top level tag.
   148 // -----------------------------------------------------------------------------
   148 // -----------------------------------------------------------------------------
   149 //
   149 //
   150 const TDesC8& TTlvBase::GetDataWithoutTopLevelTag()
   150 const TDesC8& TTlvBase::GetDataWithoutTopLevelTag()
   151     {
   151     {
   152     OstTrace0( TRACE_DETAILED, TTLVBASE_GETDATAWITHOUTTOPLEVELTAG, "TTlvBase::GetDataWithoutTopLevelTag" );
   152     OstTrace0( TRACE_INTERNALS,  TTLVBASE_GETDATAWITHOUTTOPLEVELTAG_TD, "TTlvBase::GetDataWithoutTopLevelTag" );
   153     TFLOGSTRING("TSY: TTlvBase::GetDataWithoutTopLevelTag");
   153     TFLOGSTRING("TSY: TTlvBase::GetDataWithoutTopLevelTag");
   154 
   154 
   155     _LIT8( KLenTag, "\x81" );
   155     _LIT8( KLenTag, "\x81" );
   156 
   156 
   157     TInt i( 1 ); // index to tag length
   157     TInt i( 1 ); // index to tag length
   178 // might leave.
   178 // might leave.
   179 // -----------------------------------------------------------------------------
   179 // -----------------------------------------------------------------------------
   180 //
   180 //
   181 CBerTlv::CBerTlv()
   181 CBerTlv::CBerTlv()
   182     {
   182     {
   183     OstTrace0( TRACE_DETAILED, CBERTLV_CBERTLV, "CBerTlv::CBerTlv" );
   183     OstTrace0( TRACE_INTERNALS,  CBERTLV_CBERTLV_TD, "CBerTlv::CBerTlv" );
   184     TFLOGSTRING("TSY: CBerTlv::CBerTlv");
   184     TFLOGSTRING("TSY: CBerTlv::CBerTlv");
   185     //none
   185     //none
   186     }
   186     }
   187 
   187 
   188 // -----------------------------------------------------------------------------
   188 // -----------------------------------------------------------------------------
   198         CTlv* aTlv,                 //TLV
   198         CTlv* aTlv,                 //TLV
   199         TUint8 aTlvTagValue,        //TLV identifier
   199         TUint8 aTlvTagValue,        //TLV identifier
   200         TInt aItemNbr                //item number
   200         TInt aItemNbr                //item number
   201         )
   201         )
   202     {
   202     {
   203     OstTrace0( TRACE_DETAILED, CBERTLV_TLVBYTAGVALUE, "CBerTlv::TlvByTagValue" );
   203     OstTrace0( TRACE_INTERNALS,  CBERTLV_TLVBYTAGVALUE_TD, "CBerTlv::TlvByTagValue" );
   204     TFLOGSTRING("TSY: CBerTlv::TlvByTagValue");
   204     TFLOGSTRING("TSY: CBerTlv::TlvByTagValue");
   205     TInt currentTlv( 0 );
   205     TInt currentTlv( 0 );
   206     TInt tlvLength( 0 );
   206     TInt tlvLength( 0 );
   207     TInt index( 0 );
   207     TInt index( 0 );
   208 
   208 
   285         (
   285         (
   286         CTlv* aTlv,                 //TLV to fill
   286         CTlv* aTlv,                 //TLV to fill
   287         TUint8 aTlvTagValue         // tag of tlv to find
   287         TUint8 aTlvTagValue         // tag of tlv to find
   288         )
   288         )
   289     {
   289     {
   290     OstTrace0( TRACE_DETAILED, CBERTLV_TLVBYTAGVALUEMULTI, "CBerTlv::TlvByTagValueMulti" );
   290     OstTrace0( TRACE_INTERNALS,  CBERTLV_TLVBYTAGVALUEMULTI_TD, "CBerTlv::TlvByTagValueMulti" );
   291     TFLOGSTRING("TSY: CBerTlv::TlvByTagValueMulti");
   291     TFLOGSTRING("TSY: CBerTlv::TlvByTagValueMulti");
   292 
   292 
   293     TInt currentTlv( 0 );
   293     TInt currentTlv( 0 );
   294     TInt16 tlvLength( 0 );
   294     TInt16 tlvLength( 0 );
   295     TInt indMulti( 0 );
   295     TInt indMulti( 0 );
   361 // might leave.
   361 // might leave.
   362 // -----------------------------------------------------------------------------
   362 // -----------------------------------------------------------------------------
   363 //
   363 //
   364 CTlv::CTlv()
   364 CTlv::CTlv()
   365     {
   365     {
   366     OstTrace0( TRACE_DETAILED, CTLV_CTLV, "CTlv::CTlv" );
   366     OstTrace0( TRACE_INTERNALS,  CTLV_CTLV_TD, "CTlv::CTlv" );
   367     TFLOGSTRING("TSY: CTlv::CTlv");
   367     TFLOGSTRING("TSY: CTlv::CTlv");
   368     //none
   368     //none
   369     }
   369     }
   370 
   370 
   371 // -----------------------------------------------------------------------------
   371 // -----------------------------------------------------------------------------
   377 TUint8 CTlv::GetShortInfo
   377 TUint8 CTlv::GetShortInfo
   378         (
   378         (
   379         TTlvSpesificDataType aType //Info spesific data type
   379         TTlvSpesificDataType aType //Info spesific data type
   380         )
   380         )
   381     {
   381     {
   382     OstTrace0( TRACE_DETAILED, CTLV_GETSHORTINFO, "CTlv::GetShortInfo" );
   382     OstTrace0( TRACE_INTERNALS,  CTLV_GETSHORTINFO_TD, "CTlv::GetShortInfo" );
   383     TFLOGSTRING("TSY: CTlv::GetShortInfo");
   383     TFLOGSTRING("TSY: CTlv::GetShortInfo");
   384 
   384 
   385     //information is generally at index 2. NOTE! This method should be optimised
   385     //information is generally at index 2. NOTE! This method should be optimised
   386     //after the code maturity is high enough.
   386     //after the code maturity is high enough.
   387     TInt ind ( KTlvDataAreaStartPosition );
   387     TInt ind ( KTlvDataAreaStartPosition );
   906         }
   906         }
   907     else
   907     else
   908         {
   908         {
   909         // Data type did not match with any of enumerations
   909         // Data type did not match with any of enumerations
   910         TFLOGSTRING2("TSY: CTlv::GetShortInfo, Unknown data type:0x%x", aType);
   910         TFLOGSTRING2("TSY: CTlv::GetShortInfo, Unknown data type:0x%x", aType);
   911         OstTrace1( TRACE_DETAILED, DUP1_CTLV_GETSHORTINFO, "CTlv::GetShortInfo Unknown data type: %{TTlvSpesificDataType}", aType );
   911         OstTrace1( TRACE_INTERNALS,  DUP1_CTLV_GETSHORTINFO_TD, "CTlv::GetShortInfo Unknown data type: %{TTlvSpesificDataType}", aType );
   912 
   912 
   913         }
   913         }
   914 
   914 
   915     return iData[ind];
   915     return iData[ind];
   916 
   916 
   924 TPtrC8 CTlv::GetData
   924 TPtrC8 CTlv::GetData
   925         (
   925         (
   926         TTlvSpesificDataType aType //Info spesific data type
   926         TTlvSpesificDataType aType //Info spesific data type
   927         )
   927         )
   928     {
   928     {
   929     OstTrace0( TRACE_DETAILED, CTLV_GETDATA, "CTlv::GetData" );
   929     OstTrace0( TRACE_INTERNALS,  CTLV_GETDATA_TD, "CTlv::GetData" );
   930     TFLOGSTRING("TSY: CTlv::GetData");
   930     TFLOGSTRING("TSY: CTlv::GetData");
   931 
   931 
   932     //information is generally at index 2.
   932     //information is generally at index 2.
   933     TInt ind ( 2 );
   933     TInt ind ( 2 );
   934     TUint8 offset( 0 );
   934     TUint8 offset( 0 );
  1479         }
  1479         }
  1480     else
  1480     else
  1481         {
  1481         {
  1482         // Data type did not match
  1482         // Data type did not match
  1483         TFLOGSTRING2("TSY: CTlv::GetData, Unknown data type: 0x%x", aType );
  1483         TFLOGSTRING2("TSY: CTlv::GetData, Unknown data type: 0x%x", aType );
  1484         OstTrace1( TRACE_DETAILED, DUP2_CTLV_GETDATA, "CTlv::GetData Unknown data type: %{TTlvSpesificDataType}", aType );
  1484         OstTrace1( TRACE_INTERNALS,  DUP2_CTLV_GETDATA_TD, "CTlv::GetData Unknown data type: %{TTlvSpesificDataType}", aType );
  1485 
  1485 
  1486         }
  1486         }
  1487 
  1487 
  1488     return iData.Mid( ind, length );
  1488     return iData.Mid( ind, length );
  1489 
  1489 
  1498  TUint16 CTlv::GetLongInfo
  1498  TUint16 CTlv::GetLongInfo
  1499         (
  1499         (
  1500         TTlvSpesificDataType aType //Info spesific data type
  1500         TTlvSpesificDataType aType //Info spesific data type
  1501         )
  1501         )
  1502     {
  1502     {
  1503     OstTrace0( TRACE_DETAILED, CTLV_GETLONGINFO, "CTlv::GetLongInfo" );
  1503     OstTrace0( TRACE_INTERNALS,  CTLV_GETLONGINFO_TD, "CTlv::GetLongInfo" );
  1504     TFLOGSTRING("TSY: CTlv::GetLongInfo");
  1504     TFLOGSTRING("TSY: CTlv::GetLongInfo");
  1505 
  1505 
  1506     TUint16 ret( 0x0000 );
  1506     TUint16 ret( 0x0000 );
  1507 
  1507 
  1508     if ( ETLV_LocationAreaCode == aType )
  1508     if ( ETLV_LocationAreaCode == aType )
  1566         }
  1566         }
  1567     else
  1567     else
  1568         {
  1568         {
  1569         // Data type did not match
  1569         // Data type did not match
  1570         TFLOGSTRING2("TSY: CTlv::GetLongInfo, Unknown data type:0x%x", aType );
  1570         TFLOGSTRING2("TSY: CTlv::GetLongInfo, Unknown data type:0x%x", aType );
  1571         OstTrace1( TRACE_DETAILED, DUP1_CTLV_GETLONGINFO, "CTlv::GetLongInfo, Unknown data type: %{TTlvSpesificDataType}", aType );
  1571         OstTrace1( TRACE_INTERNALS,  DUP1_CTLV_GETLONGINFO_TD, "CTlv::GetLongInfo, Unknown data type: %{TTlvSpesificDataType}", aType );
  1572 
  1572 
  1573         }
  1573         }
  1574     return ret;
  1574     return ret;
  1575 
  1575 
  1576     }
  1576     }
  1582 // UICC_CAT_IND(UICC_CAT_FETCHED_CMD)  ISI message.
  1582 // UICC_CAT_IND(UICC_CAT_FETCHED_CMD)  ISI message.
  1583 // -----------------------------------------------------------------------------
  1583 // -----------------------------------------------------------------------------
  1584 //
  1584 //
  1585 TInt CBerTlv::BerTlv( const TIsiReceiveC& aIsiMessage )
  1585 TInt CBerTlv::BerTlv( const TIsiReceiveC& aIsiMessage )
  1586     {
  1586     {
  1587     OstTrace0( TRACE_DETAILED, CBERTLV_BERTLV, "CBerTlv::BerTlv" );
  1587     OstTrace0( TRACE_INTERNALS,  CBERTLV_BERTLV_TD, "CBerTlv::BerTlv" );
  1588     TFLOGSTRING("TSY: CBerTlv::BerTlv");
  1588     TFLOGSTRING("TSY: CBerTlv::BerTlv");
  1589 
  1589 
  1590     TInt result ( KErrNotFound );
  1590     TInt result ( KErrNotFound );
  1591     TUint16 berTlvLength( 0 );
  1591     TUint16 berTlvLength( 0 );
  1592 
  1592