contentstorage/cautils/inc/cautils.h
author hgs
Mon, 20 Sep 2010 10:22:22 +0300
changeset 119 50e220be30d1
parent 85 7feec50967db
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
85
7feec50967db 201003_02
hgs
parents:
diff changeset
     1
/*
7feec50967db 201003_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
7feec50967db 201003_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
7feec50967db 201003_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
7feec50967db 201003_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
7feec50967db 201003_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
7feec50967db 201003_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
7feec50967db 201003_02
hgs
parents:
diff changeset
     8
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
     9
 * Initial Contributors:
7feec50967db 201003_02
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
7feec50967db 201003_02
hgs
parents:
diff changeset
    11
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    12
 * Contributors:
7feec50967db 201003_02
hgs
parents:
diff changeset
    13
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    14
 * Description:  ?Description
7feec50967db 201003_02
hgs
parents:
diff changeset
    15
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    16
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
    17
7feec50967db 201003_02
hgs
parents:
diff changeset
    18
#include <e32base.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    19
#include <s32mem.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    20
7feec50967db 201003_02
hgs
parents:
diff changeset
    21
#include "casrvdef.h"
7feec50967db 201003_02
hgs
parents:
diff changeset
    22
7feec50967db 201003_02
hgs
parents:
diff changeset
    23
class RWriteStream;
7feec50967db 201003_02
hgs
parents:
diff changeset
    24
class RReadStream;
7feec50967db 201003_02
hgs
parents:
diff changeset
    25
class CCaInnerEntry;
7feec50967db 201003_02
hgs
parents:
diff changeset
    26
class RIdsArray;
7feec50967db 201003_02
hgs
parents:
diff changeset
    27
7feec50967db 201003_02
hgs
parents:
diff changeset
    28
NONSHARABLE_CLASS( MenuUtils )
7feec50967db 201003_02
hgs
parents:
diff changeset
    29
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
    30
public:
7feec50967db 201003_02
hgs
parents:
diff changeset
    31
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    32
     * Gets TUint from a aStr - HEX or Decimal
7feec50967db 201003_02
hgs
parents:
diff changeset
    33
     *
7feec50967db 201003_02
hgs
parents:
diff changeset
    34
     * @return error code
7feec50967db 201003_02
hgs
parents:
diff changeset
    35
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    36
    IMPORT_C static TInt GetTUint( const TDesC& aStr, TUint& aInt );
119
hgs
parents: 85
diff changeset
    37
    
hgs
parents: 85
diff changeset
    38
    /**
hgs
parents: 85
diff changeset
    39
     * Gets TUint from a aStr - HEX or Decimal
hgs
parents: 85
diff changeset
    40
     */
hgs
parents: 85
diff changeset
    41
    IMPORT_C static void InitTextResolverSymbianL( const TDesC& aFilename );
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    42
7feec50967db 201003_02
hgs
parents:
diff changeset
    43
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    44
     * Template method for marshaling data.
7feec50967db 201003_02
hgs
parents:
diff changeset
    45
     * @param aObject object supporting ExternalizeL method
7feec50967db 201003_02
hgs
parents:
diff changeset
    46
     * @param aExpandSize granularity of the buffer
7feec50967db 201003_02
hgs
parents:
diff changeset
    47
     * @return descriptor containing serialized object
7feec50967db 201003_02
hgs
parents:
diff changeset
    48
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    49
    template<typename SerializableObject>
7feec50967db 201003_02
hgs
parents:
diff changeset
    50
    static HBufC8* MarshalDataL( const SerializableObject& aObject,
7feec50967db 201003_02
hgs
parents:
diff changeset
    51
            TInt aExpandSize )
7feec50967db 201003_02
hgs
parents:
diff changeset
    52
        {
7feec50967db 201003_02
hgs
parents:
diff changeset
    53
        TIpcArgs args;
7feec50967db 201003_02
hgs
parents:
diff changeset
    54
        CBufFlat* buf = CBufFlat::NewL( aExpandSize );
7feec50967db 201003_02
hgs
parents:
diff changeset
    55
        CleanupStack::PushL( buf );
7feec50967db 201003_02
hgs
parents:
diff changeset
    56
        RBufWriteStream stream( *buf );
7feec50967db 201003_02
hgs
parents:
diff changeset
    57
        CleanupClosePushL( stream );
7feec50967db 201003_02
hgs
parents:
diff changeset
    58
        aObject.ExternalizeL( stream );
7feec50967db 201003_02
hgs
parents:
diff changeset
    59
        stream.CommitL();
7feec50967db 201003_02
hgs
parents:
diff changeset
    60
        CleanupStack::PopAndDestroy( &stream );
7feec50967db 201003_02
hgs
parents:
diff changeset
    61
        HBufC8* des = HBufC8::NewL( buf->Size() );
7feec50967db 201003_02
hgs
parents:
diff changeset
    62
        TPtr8 ptr( des->Des() );
7feec50967db 201003_02
hgs
parents:
diff changeset
    63
        buf->Read( 0, ptr, buf->Size() );
7feec50967db 201003_02
hgs
parents:
diff changeset
    64
        CleanupStack::PopAndDestroy( buf );
7feec50967db 201003_02
hgs
parents:
diff changeset
    65
        return des;
7feec50967db 201003_02
hgs
parents:
diff changeset
    66
        }
7feec50967db 201003_02
hgs
parents:
diff changeset
    67
7feec50967db 201003_02
hgs
parents:
diff changeset
    68
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    69
     * Internalizes object from descriptor which is stored in aMessage
7feec50967db 201003_02
hgs
parents:
diff changeset
    70
     * @param aMessage message containing descriptor with serialized object
7feec50967db 201003_02
hgs
parents:
diff changeset
    71
     * @param aObject an object supporting InternalizeL method
7feec50967db 201003_02
hgs
parents:
diff changeset
    72
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    73
    template<typename SerializableObject>
7feec50967db 201003_02
hgs
parents:
diff changeset
    74
    static void InternalizeObjectL( const RMessage2& aMessage,
7feec50967db 201003_02
hgs
parents:
diff changeset
    75
            SerializableObject& aObject )
7feec50967db 201003_02
hgs
parents:
diff changeset
    76
        {
7feec50967db 201003_02
hgs
parents:
diff changeset
    77
        TInt deslen = aMessage.GetDesLength( KInputPosition1 );
7feec50967db 201003_02
hgs
parents:
diff changeset
    78
        HBufC8* buffer = HBufC8::NewLC( deslen );
7feec50967db 201003_02
hgs
parents:
diff changeset
    79
        TPtr8 tempDes = buffer->Des();
7feec50967db 201003_02
hgs
parents:
diff changeset
    80
        aMessage.Read( KInputPosition1, tempDes );
7feec50967db 201003_02
hgs
parents:
diff changeset
    81
        RDesReadStream datastrm( *buffer );
7feec50967db 201003_02
hgs
parents:
diff changeset
    82
        CleanupClosePushL( datastrm );
7feec50967db 201003_02
hgs
parents:
diff changeset
    83
        aObject.InternalizeL( datastrm );
7feec50967db 201003_02
hgs
parents:
diff changeset
    84
        CleanupStack::PopAndDestroy( &datastrm );
7feec50967db 201003_02
hgs
parents:
diff changeset
    85
        CleanupStack::PopAndDestroy( buffer );
7feec50967db 201003_02
hgs
parents:
diff changeset
    86
        }
7feec50967db 201003_02
hgs
parents:
diff changeset
    87
    };