appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget_symbian.cpp
branchRCL_3
changeset 26 8b7f4e561641
parent 25 7333d7932ef7
child 27 e8965914fac7
equal deleted inserted replaced
25:7333d7932ef7 26:8b7f4e561641
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: SIF UI dialog title widget (SymbianOS specific part).
       
    15 *
       
    16 */
       
    17 
       
    18 #include "sifuidialogtitlewidget.h"
       
    19 #include "sifuidialogcertificateinfo.h"     // SifUiDialogCertificateInfo
       
    20 #include <s32mem.h>                         // RDesReadStream
       
    21 
       
    22 
       
    23 // ======== LOCAL FUNCTIONS ========
       
    24 
       
    25 // ----------------------------------------------------------------------------
       
    26 // readStringFromStreamL()
       
    27 // ----------------------------------------------------------------------------
       
    28 //
       
    29 QString readStringFromStreamL( RDesReadStream& aReadStream )
       
    30 {
       
    31     TInt length = aReadStream.ReadInt32L();
       
    32     HBufC* buf = HBufC::NewLC( length );
       
    33     TPtr ptr( buf->Des() );
       
    34     aReadStream.ReadL( ptr, length );
       
    35     QString string = QString::fromUtf16( ptr.Ptr(), length );
       
    36     CleanupStack::PopAndDestroy( buf );
       
    37     return string;
       
    38 }
       
    39 
       
    40 // ----------------------------------------------------------------------------
       
    41 // readByteArrayFromStreamL()
       
    42 // ----------------------------------------------------------------------------
       
    43 //
       
    44 QByteArray readByteArrayFromStreamL( RDesReadStream& aReadStream )
       
    45 {
       
    46     TInt length = aReadStream.ReadInt32L();
       
    47     HBufC8* buf = HBufC8::NewLC( length );
       
    48     TPtr8 ptr( buf->Des() );
       
    49     aReadStream.ReadL( ptr, length );
       
    50     QByteArray byteArray( reinterpret_cast< const char * >( ptr.Ptr() ), length );
       
    51     CleanupStack::PopAndDestroy( buf );
       
    52     return byteArray;
       
    53 }
       
    54 
       
    55 // ----------------------------------------------------------------------------
       
    56 // readDateFromStreamL()
       
    57 // ----------------------------------------------------------------------------
       
    58 //
       
    59 void readDateFromStreamL( RDesReadStream& aReadStream, QDateTime& aDateTime )
       
    60 {
       
    61     TDateTime dateTimeSymbian;
       
    62     TPckg<TDateTime> dateTimePckg( dateTimeSymbian );
       
    63     aReadStream.ReadL( dateTimePckg );
       
    64     QDate date( dateTimeSymbian.Year(), dateTimeSymbian.Month()+1, dateTimeSymbian.Day()+1 );
       
    65     aDateTime.setDate( date );
       
    66     QTime time( dateTimeSymbian.Hour(), dateTimeSymbian.Minute(), dateTimeSymbian.Second() );
       
    67     aDateTime.setTime( time );
       
    68 }
       
    69 
       
    70 // ----------------------------------------------------------------------------
       
    71 // doGetCertificatesL()
       
    72 // ----------------------------------------------------------------------------
       
    73 //
       
    74 QList<SifUiDialogCertificateInfo*> *doGetCertificatesL( QByteArray aArray )
       
    75 {
       
    76     QList<SifUiDialogCertificateInfo*> *list = new QList<SifUiDialogCertificateInfo*>;
       
    77 
       
    78     const TPtrC8 ptr8( reinterpret_cast< const TText8* >( aArray.constData() ), aArray.size() );
       
    79     RDesReadStream readStream;
       
    80     CleanupClosePushL( readStream );
       
    81     readStream.Open( ptr8 );
       
    82 
       
    83     TInt certCount = readStream.ReadInt32L();
       
    84     for( TInt index = 0; index < certCount; ++index )
       
    85         {
       
    86         QString subjectName = readStringFromStreamL( readStream );
       
    87         QString issuerName = readStringFromStreamL( readStream );
       
    88         QByteArray fingerprint = readByteArrayFromStreamL( readStream );
       
    89         QByteArray serialNumber = readByteArrayFromStreamL( readStream );
       
    90         QDateTime validFrom;
       
    91         readDateFromStreamL( readStream, validFrom );
       
    92         QDateTime validTo;
       
    93         readDateFromStreamL( readStream, validTo );
       
    94 
       
    95         SifUiDialogCertificateInfo *certInfo = new SifUiDialogCertificateInfo(
       
    96             subjectName, issuerName, fingerprint, serialNumber, validFrom, validTo );
       
    97         list->append( certInfo );
       
    98         }
       
    99 
       
   100     CleanupStack::PopAndDestroy( &readStream );
       
   101     return list;
       
   102 }
       
   103 
       
   104 
       
   105 // ======== MEMBER FUNCTIONS ========
       
   106 
       
   107 // ----------------------------------------------------------------------------
       
   108 // SifUiDialogTitleWidget::SifUiDialogTitleWidget()
       
   109 // ----------------------------------------------------------------------------
       
   110 //
       
   111 QList<SifUiDialogCertificateInfo*> *SifUiDialogTitleWidget::getCertificates(
       
   112     QByteArray array)
       
   113 {
       
   114     QList<SifUiDialogCertificateInfo*> *list = 0;
       
   115     QT_TRAP_THROWING(list = doGetCertificatesL(array));
       
   116     return list;
       
   117 }
       
   118