activityfw/storage/common/inc/afentry.h
author hgs
Fri, 06 Aug 2010 13:40:46 +0300
changeset 107 b34d53f6acdf
parent 99 activityfw/storage/s60/inc/afentry.h@7aaf39b772ac
child 116 305818acdca4
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
99
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
#ifndef AFENTRYDATA_H
hgs
parents:
diff changeset
    18
#define AFENTRYDATA_H
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include <e32base.h>
hgs
parents:
diff changeset
    21
#include <s32strm.h>
hgs
parents:
diff changeset
    22
class RDbColWriteStream;
hgs
parents:
diff changeset
    23
class RDbColReadStream;
hgs
parents:
diff changeset
    24
const TInt KAfMask(0x0001);
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#ifdef AF_ADD_MASK
hgs
parents:
diff changeset
    27
#undef AF_ADD_MASK
hgs
parents:
diff changeset
    28
#endif
hgs
parents:
diff changeset
    29
#define AF_ADD_MASK(n) (KAfMask << n)
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
class CAfEntry: public CBase
hgs
parents:
diff changeset
    32
{
hgs
parents:
diff changeset
    33
public:
hgs
parents:
diff changeset
    34
    enum AccessRights {
hgs
parents:
diff changeset
    35
    Private =0,
hgs
parents:
diff changeset
    36
    Public
hgs
parents:
diff changeset
    37
    };
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
    enum Flags {
hgs
parents:
diff changeset
    40
    Invisible = KAfMask,
hgs
parents:
diff changeset
    41
    Persistent = 0x40000000,
hgs
parents:
diff changeset
    42
    };
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
public:
hgs
parents:
diff changeset
    45
    static CAfEntry* NewL();
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
    static CAfEntry* NewLC();
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
    static CAfEntry* NewL(TInt flags,
hgs
parents:
diff changeset
    50
                          TInt applicationId,
hgs
parents:
diff changeset
    51
                          const TDesC &activityId,
hgs
parents:
diff changeset
    52
                          const TDesC &imgSrc,
hgs
parents:
diff changeset
    53
                          const TDesC8 &privateData,
hgs
parents:
diff changeset
    54
                          const TDesC8 &publicData);
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
    static CAfEntry* NewLC(TInt flags,
hgs
parents:
diff changeset
    57
                           TInt applicationId,
hgs
parents:
diff changeset
    58
                           const TDesC &activityId,
hgs
parents:
diff changeset
    59
                           const TDesC &imgSrc,
hgs
parents:
diff changeset
    60
                           const TDesC8 &privateData,
hgs
parents:
diff changeset
    61
                           const TDesC8 &publicData);
hgs
parents:
diff changeset
    62
    
hgs
parents:
diff changeset
    63
    static CAfEntry* NewLC(const RMessage2& msg,
hgs
parents:
diff changeset
    64
                           int offset =0);
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
    ~CAfEntry();
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
    TInt Size() const;
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
    TInt DataSize() const;
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
    void ExternalizeL(RWriteStream &stream) const;
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
    void InternalizeL(RReadStream &stream);
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
    void ExternalizeDataOnlyL(RWriteStream &stream) const;
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
    void InternalizeDataOnlyL(RReadStream &stream);
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
    TInt Flags() const;
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
    TInt ApplicationId() const;
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
    const TDesC& ActivityId() const;
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
    const TDesC& ImageSrc() const;
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
    void SetImageSrcL(const TDesC& src);
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
    const TDesC8& Data(CAfEntry::AccessRights rights) const;
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
    void SetDataL(const TDesC8& src, CAfEntry::AccessRights rights);
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
    static void ReallocL(RBuf8 &dst,TInt length);
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
    static void ReallocL(RBuf &dst,TInt length);
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
    static void CopyL(RBuf8 &dst,const TDesC8 &src);
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
    static void CopyL(RBuf &dst,const TDesC &src);
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
private:
hgs
parents:
diff changeset
   103
    CAfEntry();
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
    void ConstructL(TInt flags,
hgs
parents:
diff changeset
   106
                    TInt applicationId,
hgs
parents:
diff changeset
   107
                    const TDesC &activityId,
hgs
parents:
diff changeset
   108
                    const TDesC &imgSrc,
hgs
parents:
diff changeset
   109
                    const TDesC8 &privateData,
hgs
parents:
diff changeset
   110
                    const TDesC8 &publicData);
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
    static void InternalizeL(RBuf8 &dst, RReadStream &src);
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
    static void InternalizeL(RBuf &dst, RReadStream &src);
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
    static void ExternalizeL(RWriteStream &dst,const TDesC8 & src);
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
    static void ExternalizeL(RWriteStream &dst,const TDesC& src);
hgs
parents:
diff changeset
   119
private:
hgs
parents:
diff changeset
   120
    TInt mFlags;
hgs
parents:
diff changeset
   121
    TInt mAppId;
hgs
parents:
diff changeset
   122
    RBuf mActivityId;
hgs
parents:
diff changeset
   123
    RBuf mImgSrc;
hgs
parents:
diff changeset
   124
    RBuf8 mPrivateData;
hgs
parents:
diff changeset
   125
    RBuf8 mPublicData;
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
};
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
RPointerArray<CAfEntry>& operator <<(RPointerArray<CAfEntry>& dst, const TDesC8 &src);
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
RBuf8& operator << (RBuf8 &dst, const RPointerArray<CAfEntry>& src);
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
#endif