applicationmanagement/server/inc/amdeploymentcomponentdata.h
author hgs
Tue, 13 Jul 2010 04:01:20 +0530
changeset 47 d316aecb87fd
permissions -rw-r--r--
201025_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     1
/*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2000 Nokia Corporation and/or its subsidiary(-ies). 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     8
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     9
 * Initial Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    11
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    12
 * Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    13
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    14
 * Description: Implementation of applicationmanagement components
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    15
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    16
 */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    17
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    18
#ifndef __AMDEPLOYMENTCOMPONENTDATA_H__
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    19
#define __AMDEPLOYMENTCOMPONENTDATA_H__
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    20
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    21
#include <e32base.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    22
#include <f32file.h> 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    23
#include <s32strm.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    24
#include "ApplicationManagementCommon.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    25
const TInt KMaxUrlLength = 2048;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    26
namespace NApplicationManagement
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    27
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    28
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    29
    /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    30
     *  Data class to Data access
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    31
     */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    32
    class CDeploymentComponentData : public CBase
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    33
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    34
public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    35
        enum TType
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    36
            {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    37
            EData,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    38
            EInstallOptions,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    39
            EMetaData
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    40
            };
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    41
private:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    42
        CDeploymentComponentData(TType aType, const TDesC8 &aDataFile);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    43
        CDeploymentComponentData();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    44
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    45
        void ConstructL(const TDesC8 &aData, const TDesC8 &aMime);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    46
        void ConstructLoadL(RReadStream &aStream);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    47
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    48
         Possibly changes mutable iData
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    49
         */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    50
        void LoadDataL() const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    51
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    52
        TBool IsSISInstallFile(const TDesC8 &aMimeType);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    53
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    54
public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    55
        static CDeploymentComponentData* NewL(TType aType,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    56
                const TDesC8 &aData, const TDesC8 &aMime,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    57
                const TDesC8 &aDataFile);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    58
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    59
        static CDeploymentComponentData* NewLC(TType aType,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    60
                const TDesC8 &aData, const TDesC8 &aMime,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    61
                const TDesC8 &aDataFile);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    62
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    63
        static CDeploymentComponentData* LoadL(RReadStream &aStream);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    64
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    65
        static CDeploymentComponentData* LoadLC(RReadStream &aStream);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    66
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    67
        virtual ~CDeploymentComponentData();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    68
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    69
        void SerializedFormL(RWriteStream &aBuffer) const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    70
        TInt SerializedFormLength() const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    71
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    72
        const TDesC8 &Data() const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    73
        const TDesC8 &DataFileName() const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    74
        void ResetData(RFs &aFs);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    75
        TInt DataLengthL() const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    76
        inline TType Type() const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    77
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    78
        TUid SetDataL(const TDesC8& aMimeType);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    79
        TUid SetDataL(const TDesC8 &aData, const TDesC8& aMimeType);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    80
        TUid SetDataL(const TFileName &aData, const TDesC8& aMimeType);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    81
        void SetDataFileNameL(const TDesC8 &aNewFileName);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    82
        void SetMimeTypeL(const TDesC8 &aMimeType);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    83
        inline const TDesC8 &MimeType() const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    84
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    85
        void PersistL(RFs &aFs);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    86
        void DestroyL(RFs &aFs) const;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    87
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    88
        CDeploymentComponentData &operator=(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    89
                const CDeploymentComponentData &aData);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    90
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    91
        TUid ResolveUidL(RFs &aFs);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    92
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    93
        TUid ParseUidFromSisFileL(RFile& aHandleToFile);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    94
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    95
private:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    96
        mutable HBufC8 *iData;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    97
        TBuf8<KMaxFileName> iDataFileName;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    98
        TMimeType iMimeType;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    99
        TType iType;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   100
        TBuf<15> iExtn;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   101
        };
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   102
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   103
    inline CDeploymentComponentData::TType CDeploymentComponentData::Type() const
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   104
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   105
        return iType;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   106
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   107
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   108
    inline const TDesC8 &CDeploymentComponentData::MimeType() const
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   109
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   110
        return iMimeType;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   111
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   112
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   113
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   114
#endif
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   115
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   116
//  End of File