omads/omadsextensions/adapters/contactsgroup/inc/snapshotitem.h
author hgs
Tue, 13 Jul 2010 03:39:25 +0530
changeset 40 b63e67867dcd
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
40
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2008 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:  Private snapshot item header
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef __SNAPSHOTITEM_H__
hgs
parents:
diff changeset
    20
#define __SNAPSHOTITEM_H__
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// INCLUDES
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
#include <s32strm.h>
hgs
parents:
diff changeset
    25
#include <nsmlsnapshotitem.h>
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// CLASS DECLARATION
hgs
parents:
diff changeset
    29
class CContactGroup;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// Defines the maximum length of a hash.
hgs
parents:
diff changeset
    32
const TInt KMaxHashLength = 20;
hgs
parents:
diff changeset
    33
typedef TBuf8<KMaxHashLength> THashValue;
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
/**
hgs
parents:
diff changeset
    36
* @brief TSnapshotItem
hgs
parents:
diff changeset
    37
* This class represents a single item in the ChangeFinder snapshot.
hgs
parents:
diff changeset
    38
* It's derived from the generic snapshot item and extended
hgs
parents:
diff changeset
    39
* to contain the hash (name and url) information.
hgs
parents:
diff changeset
    40
*/
hgs
parents:
diff changeset
    41
class TSnapshotItem : public TNSmlSnapshotItem
hgs
parents:
diff changeset
    42
	{ 
hgs
parents:
diff changeset
    43
public:
hgs
parents:
diff changeset
    44
	
hgs
parents:
diff changeset
    45
	/**
hgs
parents:
diff changeset
    46
    * Constructor
hgs
parents:
diff changeset
    47
    */
hgs
parents:
diff changeset
    48
	TSnapshotItem();
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
	/**
hgs
parents:
diff changeset
    51
    * Constructor
hgs
parents:
diff changeset
    52
    * 
hgs
parents:
diff changeset
    53
    * @param aItemId   IN: id of the item.
hgs
parents:
diff changeset
    54
    * @param aParent   IN: parent item, 0 as default.
hgs
parents:
diff changeset
    55
    */
hgs
parents:
diff changeset
    56
	TSnapshotItem( const TSmlDbItemUid& aItemId,
hgs
parents:
diff changeset
    57
	    const TSmlDbItemUid& aParent = 0 );
hgs
parents:
diff changeset
    58
	
hgs
parents:
diff changeset
    59
	/**
hgs
parents:
diff changeset
    60
    * Writes the item to a stream.
hgs
parents:
diff changeset
    61
    * 
hgs
parents:
diff changeset
    62
    * @param aStream   IN: a reference to a stream, where this item is to be written.
hgs
parents:
diff changeset
    63
    */
hgs
parents:
diff changeset
    64
	void ExternalizeL( RWriteStream& aStream ) const;
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
	/**
hgs
parents:
diff changeset
    67
    * Reads item from a stream.
hgs
parents:
diff changeset
    68
    * 
hgs
parents:
diff changeset
    69
    * @param aStream   IN: a reference to a stream, where this item is read from.
hgs
parents:
diff changeset
    70
    */
hgs
parents:
diff changeset
    71
	void InternalizeL( RReadStream& aStream );	
hgs
parents:
diff changeset
    72
	
hgs
parents:
diff changeset
    73
	/**
hgs
parents:
diff changeset
    74
    * Creates hash from name and url
hgs
parents:
diff changeset
    75
    *
hgs
parents:
diff changeset
    76
    * @param aName, name to used
hgs
parents:
diff changeset
    77
    * @param aUrl, url to used
hgs
parents:
diff changeset
    78
    * @return none.
hgs
parents:
diff changeset
    79
    */
hgs
parents:
diff changeset
    80
	void CreateHashL( const TDesC& aName, const TDesC& aUrl );
hgs
parents:
diff changeset
    81
	void CreateHashL( CContactGroup& aGroup );
hgs
parents:
diff changeset
    82
	
hgs
parents:
diff changeset
    83
	/**
hgs
parents:
diff changeset
    84
    * Reads hash
hgs
parents:
diff changeset
    85
    * 
hgs
parents:
diff changeset
    86
    * @return TDesC8& hash.
hgs
parents:
diff changeset
    87
    */
hgs
parents:
diff changeset
    88
	const TDesC8& Hash() const;
hgs
parents:
diff changeset
    89
	
hgs
parents:
diff changeset
    90
private:
hgs
parents:
diff changeset
    91
    
hgs
parents:
diff changeset
    92
    THashValue       iHash;
hgs
parents:
diff changeset
    93
    };
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
#endif