appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget_symbian.cpp
branchRCL_3
changeset 25 7333d7932ef7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget_symbian.cpp	Tue Aug 31 15:21:33 2010 +0300
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 2010 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: SIF UI dialog title widget (SymbianOS specific part).
+*
+*/
+
+#include "sifuidialogtitlewidget.h"
+#include "sifuidialogcertificateinfo.h"     // SifUiDialogCertificateInfo
+#include <s32mem.h>                         // RDesReadStream
+
+
+// ======== LOCAL FUNCTIONS ========
+
+// ----------------------------------------------------------------------------
+// readStringFromStreamL()
+// ----------------------------------------------------------------------------
+//
+QString readStringFromStreamL( RDesReadStream& aReadStream )
+{
+    TInt length = aReadStream.ReadInt32L();
+    HBufC* buf = HBufC::NewLC( length );
+    TPtr ptr( buf->Des() );
+    aReadStream.ReadL( ptr, length );
+    QString string = QString::fromUtf16( ptr.Ptr(), length );
+    CleanupStack::PopAndDestroy( buf );
+    return string;
+}
+
+// ----------------------------------------------------------------------------
+// readByteArrayFromStreamL()
+// ----------------------------------------------------------------------------
+//
+QByteArray readByteArrayFromStreamL( RDesReadStream& aReadStream )
+{
+    TInt length = aReadStream.ReadInt32L();
+    HBufC8* buf = HBufC8::NewLC( length );
+    TPtr8 ptr( buf->Des() );
+    aReadStream.ReadL( ptr, length );
+    QByteArray byteArray( reinterpret_cast< const char * >( ptr.Ptr() ), length );
+    CleanupStack::PopAndDestroy( buf );
+    return byteArray;
+}
+
+// ----------------------------------------------------------------------------
+// readDateFromStreamL()
+// ----------------------------------------------------------------------------
+//
+void readDateFromStreamL( RDesReadStream& aReadStream, QDateTime& aDateTime )
+{
+    TDateTime dateTimeSymbian;
+    TPckg<TDateTime> dateTimePckg( dateTimeSymbian );
+    aReadStream.ReadL( dateTimePckg );
+    QDate date( dateTimeSymbian.Year(), dateTimeSymbian.Month()+1, dateTimeSymbian.Day()+1 );
+    aDateTime.setDate( date );
+    QTime time( dateTimeSymbian.Hour(), dateTimeSymbian.Minute(), dateTimeSymbian.Second() );
+    aDateTime.setTime( time );
+}
+
+// ----------------------------------------------------------------------------
+// doGetCertificatesL()
+// ----------------------------------------------------------------------------
+//
+QList<SifUiDialogCertificateInfo*> *doGetCertificatesL( QByteArray aArray )
+{
+    QList<SifUiDialogCertificateInfo*> *list = new QList<SifUiDialogCertificateInfo*>;
+
+    const TPtrC8 ptr8( reinterpret_cast< const TText8* >( aArray.constData() ), aArray.size() );
+    RDesReadStream readStream;
+    CleanupClosePushL( readStream );
+    readStream.Open( ptr8 );
+
+    TInt certCount = readStream.ReadInt32L();
+    for( TInt index = 0; index < certCount; ++index )
+        {
+        QString subjectName = readStringFromStreamL( readStream );
+        QString issuerName = readStringFromStreamL( readStream );
+        QByteArray fingerprint = readByteArrayFromStreamL( readStream );
+        QByteArray serialNumber = readByteArrayFromStreamL( readStream );
+        QDateTime validFrom;
+        readDateFromStreamL( readStream, validFrom );
+        QDateTime validTo;
+        readDateFromStreamL( readStream, validTo );
+
+        SifUiDialogCertificateInfo *certInfo = new SifUiDialogCertificateInfo(
+            subjectName, issuerName, fingerprint, serialNumber, validFrom, validTo );
+        list->append( certInfo );
+        }
+
+    CleanupStack::PopAndDestroy( &readStream );
+    return list;
+}
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ----------------------------------------------------------------------------
+// SifUiDialogTitleWidget::SifUiDialogTitleWidget()
+// ----------------------------------------------------------------------------
+//
+QList<SifUiDialogCertificateInfo*> *SifUiDialogTitleWidget::getCertificates(
+    QByteArray array)
+{
+    QList<SifUiDialogCertificateInfo*> *list = 0;
+    QT_TRAP_THROWING(list = doGetCertificatesL(array));
+    return list;
+}
+