contentstorage/cautils/inc/cainnernotifierfilter.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:48:45 +0300
changeset 66 32469d7d46ff
parent 60 f62f87b200ec
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
 *
 * Description:  ?Description
 *
 */

#ifndef CAINNERNOTIFIERFILTER_H
#define CAINNERNOTIFIERFILTER_H

#include <e32base.h>
#include "cadef.h"

class CDesC16ArrayFlat;
class RWriteStream;
class RReadStream;

/**
 * Class represents Notifier filter
 */
NONSHARABLE_CLASS( CCaInnerNotifierFilter ): public CBase
    {
public:

    enum TNotifierType
        {
        EEntryChangedWithId = 0,
        EEntryChangedWithEntry,
        EEntryTouched,
        EGroupContentChanged
        };

    /**
     * Destructor.
     */
    virtual ~CCaInnerNotifierFilter();

    /**
     * Two-phased constructor.
     * @param aInnerNotifierType inner type of notifier.
     * @return The created object.
     */
    IMPORT_C static CCaInnerNotifierFilter* NewL(
        TNotifierType aInnerNotifierType );

    /**
     * Two-phased constructor.
     * @param aInnerNotifierType inner type of notifier.
     * @return The created object.
     */
    IMPORT_C static CCaInnerNotifierFilter* NewLC(
        TNotifierType aInnerNotifierType );

    /**
     *
     */
    IMPORT_C TInt GetParentId() const;
    /**
     *
     */
    IMPORT_C void SetParentId( TInt aParentId );
    /**
     *
     */
    IMPORT_C RArray<TInt> GetIds() const;
    /**
     *
     */
    IMPORT_C void SetIdsL( const RArray<TInt>& aIds );
    /**
     *
     */
    IMPORT_C TEntryRole GetEntryRole() const;
    /**
     *
     */
    IMPORT_C void SetEntryRole( TEntryRole aEntryRole );
    /**
     *
     */
    IMPORT_C CDesC16ArrayFlat* GetTypeNames() const;
    /**
     *
     */
    IMPORT_C void SetTypeNames( CDesC16ArrayFlat * aTypeNames );
    /**
     *
     */
    IMPORT_C TNotifierType GetNotifierType() const;

    /**
     *
     */
    IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;

    /**
     *
     */
    IMPORT_C void InternalizeL( RReadStream& aStream );

private:

    /**
     * Second phased constructor.
     */
    void ConstructL();

    /**
     * Constructor
     */
    CCaInnerNotifierFilter( TNotifierType aInnerNotifierType );

private:

    /**
     * Unique identifier of parent. Own
     */
    TInt iParentId;
    /**
     * Unique identifier of entries. Own
     */
    RArray<TInt> iIds;
    /**
     *
     */
    TEntryRole iEntryRole;
    /**
     * Own
     */
    CDesC16ArrayFlat* iTypeNames;
    /**
     * Notifier command
     */
    TNotifierType iNotifierType;

    };

#endif // CAINNERNOTIFIERFILTER_H