homescreenpluginsrv/hspsodt/src/hspsodt.cpp
branchRCL_3
changeset 51 15e4dd19031c
parent 19 502e5d91ad42
equal deleted inserted replaced
19:502e5d91ad42 51:15e4dd19031c
    20 #include <s32mem.h>
    20 #include <s32mem.h>
    21 #include "hspsthememanagement.h"
    21 #include "hspsthememanagement.h"
    22 #include "hspsdomdocument.h"
    22 #include "hspsdomdocument.h"
    23 #include "hspsresource.h"
    23 #include "hspsresource.h"
    24 
    24 
       
    25 // ODT version number
       
    26 _LIT( KHpspOdtVersion, "3.0" );
       
    27 
    25 // ============================ MEMBER FUNCTIONS ===============================
    28 // ============================ MEMBER FUNCTIONS ===============================
    26 
    29 
    27 // -----------------------------------------------------------------------------
    30 // -----------------------------------------------------------------------------
    28 // ChspsODT::ChspsODT
    31 // ChspsODT::ChspsODT
    29 // C++ default constructor can NOT contain any code, that
    32 // C++ default constructor can NOT contain any code, that
    60     aTarget.SetThemeUid(            aSource.ThemeUid() );
    63     aTarget.SetThemeUid(            aSource.ThemeUid() );
    61     aTarget.SetProviderNameL(       aSource.ProviderName() );
    64     aTarget.SetProviderNameL(       aSource.ProviderName() );
    62     aTarget.SetThemeFullNameL(      aSource.ThemeFullName() );
    65     aTarget.SetThemeFullNameL(      aSource.ThemeFullName() );
    63     aTarget.SetThemeShortNameL(     aSource.ThemeShortName() );
    66     aTarget.SetThemeShortNameL(     aSource.ThemeShortName() );
    64     aTarget.SetThemeVersionL(       aSource.ThemeVersion() );
    67     aTarget.SetThemeVersionL(       aSource.ThemeVersion() );
    65     aTarget.SetPackageVersionL(     aSource.PackageVersion() );
       
    66     aTarget.SetDescriptionL(        aSource.Description() );
    68     aTarget.SetDescriptionL(        aSource.Description() );
    67     aTarget.SetLogoFileL(           aSource.LogoFile() );
    69     aTarget.SetLogoFileL(           aSource.LogoFile() );
    68     aTarget.SetPreviewFileL(        aSource.PreviewFile() );
    70     aTarget.SetPreviewFileL(        aSource.PreviewFile() );
    69     aTarget.SetMultiInstance(       aSource.MultiInstance() );
    71     aTarget.SetMultiInstance(       aSource.MultiInstance() );
    70     aTarget.SetOdtLanguage(         aSource.OdtLanguage() );
    72     aTarget.SetOdtLanguage(         aSource.OdtLanguage() );
   124     delete iPreviewFile;
   126     delete iPreviewFile;
   125     delete iProviderName;
   127     delete iProviderName;
   126     delete iThemeFullName;
   128     delete iThemeFullName;
   127     delete iThemeShortName;
   129     delete iThemeShortName;
   128     delete iThemeVersion;
   130     delete iThemeVersion;
   129     delete iPackageVersion;
       
   130     // clean up the array
   131     // clean up the array
   131     if( iResourceList )
   132     if( iResourceList )
   132         {
   133         {
   133         iResourceList->ResetAndDestroy();
   134         iResourceList->ResetAndDestroy();
   134         delete iResourceList;
   135         delete iResourceList;
   217 // ChspsODT::ExternalizeHeaderL
   218 // ChspsODT::ExternalizeHeaderL
   218 // Externalizes the ODT header
   219 // Externalizes the ODT header
   219 // (other items were commented in a header).
   220 // (other items were commented in a header).
   220 // -----------------------------------------------------------------------------    
   221 // -----------------------------------------------------------------------------    
   221 void ChspsODT::ExternalizeHeaderL( RWriteStream& aStream ) const
   222 void ChspsODT::ExternalizeHeaderL( RWriteStream& aStream ) const
   222     {    
   223     {
   223     const TDesC& packageVersion = PackageVersion();
   224     aStream.WriteInt32L( KHpspOdtVersion().Length() );
   224     aStream.WriteInt32L( packageVersion.Length() );
   225     aStream << KHpspOdtVersion();
   225     if( packageVersion.Length() > 0 )
   226 
   226         {
       
   227         aStream << packageVersion;
       
   228         }
       
   229         
       
   230     aStream.WriteUint32L( iThemeUid );
   227     aStream.WriteUint32L( iThemeUid );
   231     
   228     
   232     const TDesC& providerName = ProviderName();
   229     const TDesC& providerName = ProviderName();
   233     aStream.WriteInt32L( providerName.Length() );
   230     aStream.WriteInt32L( providerName.Length() );
   234     if( providerName.Length() > 0 )
   231     if( providerName.Length() > 0 )
   295 // (other items were commented in a header).
   292 // (other items were commented in a header).
   296 // -----------------------------------------------------------------------------    
   293 // -----------------------------------------------------------------------------    
   297 TInt ChspsODT::HeaderSize() const
   294 TInt ChspsODT::HeaderSize() const
   298     {
   295     {
   299     TInt size = sizeof( TInt32 );
   296     TInt size = sizeof( TInt32 );
   300     if( PackageVersion().Length() > 0 )
   297     size += sizeof( TUint32 ); // String streaming insert also max. 32bit member of TCardinality.
   301         {         
   298     size += KHpspOdtVersion().Size();
   302         size += sizeof( TUint32 ); // String streaming insert also max. 32bit member of TCardinality.
       
   303         size += PackageVersion().Size();
       
   304         }
       
   305     
   299     
   306     size += sizeof( TUint32 ); // iThemeUid
   300     size += sizeof( TUint32 ); // iThemeUid
   307     
   301     
   308     size += sizeof( TInt32 );
   302     size += sizeof( TInt32 );
   309     if( ProviderName().Length() > 0 )
   303     if( ProviderName().Length() > 0 )
   368 // (other items were commented in a header).
   362 // (other items were commented in a header).
   369 // -----------------------------------------------------------------------------       
   363 // -----------------------------------------------------------------------------       
   370 EXPORT_C void ChspsODT::InternalizeHeaderL( RReadStream& aStream )
   364 EXPORT_C void ChspsODT::InternalizeHeaderL( RReadStream& aStream )
   371     {    
   365     {    
   372     TInt len = aStream.ReadInt32L();
   366     TInt len = aStream.ReadInt32L();
   373     HBufC* version = NULL;
   367     HBufC* odtVersion = NULL;
   374     if( len > 0 )
   368     if ( len > 0 )
   375         {
   369         {
   376         version = HBufC::NewL( aStream, len );
   370         odtVersion = HBufC::NewL( aStream, len );
   377         }
   371         }
   378     CleanupStack::PushL( version );    
   372     CleanupStack::PushL( odtVersion );
   379     
   373     // ODT version check.
   380     // Check version request.
   374     if ( KHpspOdtVersion() != *odtVersion )
   381     if( iPackageVersion )
   375         {
   382         {
   376         User::Leave( KErrNotSupported );
   383         TBool supported = ETrue;
   377         }
   384         if( version == NULL )
   378     CleanupStack::PopAndDestroy( odtVersion );
   385             {
       
   386             supported = EFalse;
       
   387             }
       
   388         else if( version &&
       
   389                  version->Compare( *iPackageVersion ) != 0 )
       
   390             {
       
   391             supported = EFalse;
       
   392             }    
       
   393     
       
   394         if( !supported )
       
   395             {
       
   396             // Package version check requested (iPackageVersion defined) 
       
   397             // and package version not supported
       
   398             User::Leave( KErrNotSupported );
       
   399             }
       
   400         }
       
   401     
       
   402     if( version )
       
   403         {
       
   404         delete iPackageVersion;
       
   405         iPackageVersion = NULL;    
       
   406         iPackageVersion = version->AllocL();
       
   407         }
       
   408     CleanupStack::PopAndDestroy( version );
       
   409 
   379 
   410     iThemeUid = aStream.ReadUint32L();
   380     iThemeUid = aStream.ReadUint32L();
   411           
   381           
   412     delete iProviderName;
   382     delete iProviderName;
   413     iProviderName = NULL;
   383     iProviderName = NULL;
   925 	{
   895 	{
   926 	return iConfigurationType;
   896 	return iConfigurationType;
   927 	}
   897 	}
   928 
   898 
   929 // -----------------------------------------------------------------------------
   899 // -----------------------------------------------------------------------------
   930 // ChspsODT::SetPackageVersionL
       
   931 // Set package version
       
   932 // (other items were commented in a header).
       
   933 // -----------------------------------------------------------------------------    
       
   934 EXPORT_C void ChspsODT::SetPackageVersionL( const TDesC& aVersion )
       
   935     {
       
   936     if( iPackageVersion )
       
   937         {
       
   938         delete iPackageVersion;
       
   939         iPackageVersion = NULL;
       
   940         }
       
   941     
       
   942     if( aVersion.Length() != 0 )
       
   943         {        
       
   944         iPackageVersion = aVersion.AllocL();
       
   945         }
       
   946     }
       
   947 
       
   948 // -----------------------------------------------------------------------------
       
   949 // ChspsODT::PackageVersion
       
   950 // Get package version
       
   951 // (other items were commented in a header).
       
   952 // -----------------------------------------------------------------------------
       
   953 EXPORT_C const TDesC& ChspsODT::PackageVersion() const
       
   954     {
       
   955     if ( iPackageVersion )
       
   956         {
       
   957         return *iPackageVersion;
       
   958         }
       
   959     else
       
   960         {
       
   961         return KNullDesC;
       
   962         }
       
   963     }
       
   964 
       
   965 // -----------------------------------------------------------------------------
       
   966 // ChspsODT::SetFamily
   900 // ChspsODT::SetFamily
   967 // -----------------------------------------------------------------------------
   901 // -----------------------------------------------------------------------------
   968 EXPORT_C void ChspsODT::SetFamily( const TUint32 aFamilyMask )
   902 EXPORT_C void ChspsODT::SetFamily( const TUint32 aFamilyMask )
   969     {    
   903     {    
   970     iFamilyMask = aFamilyMask;
   904     iFamilyMask = aFamilyMask;