williamr@2: /*
williamr@2: * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
williamr@2: * All rights reserved.
williamr@2: * This component and the accompanying materials are made available
williamr@4: * under the terms of "Eclipse Public License v1.0"
williamr@2: * which accompanies this distribution, and is available
williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2: *
williamr@2: * Initial Contributors:
williamr@2: * Nokia Corporation - initial contribution.
williamr@2: *
williamr@2: * Contributors:
williamr@2: *
williamr@2: * Description: 
williamr@2: *      Abstract Phonebook entry interface.
williamr@2: *
williamr@2: */
williamr@2: 
williamr@2: 
williamr@2: #ifndef __CPbkIdleFinder_H__
williamr@2: #define __CPbkIdleFinder_H__
williamr@2: 
williamr@2: // INCLUDES
williamr@2: #include <e32base.h>    // CBase
williamr@2: 
williamr@2: // FORWARD DECLARATIONS
williamr@2: class CIdleFinder;
williamr@2: class CContactItemFieldDef;
williamr@2: class CContactIdArray;
williamr@2: 
williamr@2: // CLASS DECLARATION
williamr@2: 
williamr@2: /**
williamr@2:  * Phonebook idle finder class. Wrapper for Contact Model's CIdleFinder.
williamr@2:  * @see CIdleFinder.
williamr@2:  */
williamr@2: class CPbkIdleFinder : public CBase
williamr@2: 	{
williamr@2:     public:  // Constructors and destructors
williamr@2:         /**
williamr@2:          * Constructor. Not exported because objects of this class are created
williamr@2:          * only by CPbkContactEngine.
williamr@2:          *
williamr@2:          * @param aFinder   Contact Model idle finder object. This takes 
williamr@2:          *                  ownership of aFinder.
williamr@2:          * @param aFieldDef Field defintion passed to aFinder. This takes
williamr@2:          *                  ownership of aFieldDef.
williamr@2:          */
williamr@2:         CPbkIdleFinder(CIdleFinder* aFinder, CContactItemFieldDef* aFieldDef);
williamr@2: 
williamr@2:         /**
williamr@2:          * Destructor.
williamr@2:          */
williamr@2:         ~CPbkIdleFinder();
williamr@2: 	    
williamr@2:     public:  // CIdleFinder interface
williamr@2:         /**
williamr@2:          * Tests whether a search is complete.
williamr@2:          * @return ETrue if complete, EFalse if not.
williamr@2:          * @see CIdleFinder::IsCompelete().
williamr@2:          */
williamr@2: 	    IMPORT_C TBool IsComplete() const;
williamr@2: 
williamr@2:         /**
williamr@2:          * Gives access and ownership of the contact ids found in the search.
williamr@2:          * @return Contacts id's found in the search.
williamr@2:          * @see CIdleFinder::TakeContactIds().
williamr@2:          */
williamr@2: 	    IMPORT_C CContactIdArray* TakeContactIds();
williamr@2: 
williamr@2:         /**
williamr@2:          * Check for errors when search is complete.
williamr@2:          * @return Error code. KErrNone if no errors occurred during the search.
williamr@2:          * @see CIdleFinder::Error().
williamr@2:          */
williamr@2: 	    IMPORT_C TInt Error() const;
williamr@2: 
williamr@2:     public:  // Additional interface
williamr@2:         /**
williamr@2:          * Returns the CIdleFinder passed to constructor. Ownership not
williamr@2:          * transferred.
williamr@2:          * @return Symbian Contacts model Idle finder object. NULL if not set.
williamr@2:          */ 
williamr@2:         IMPORT_C CIdleFinder* IdleFinder() const;
williamr@2: 
williamr@2:         /**
williamr@2:          * Returns the CContactItemFieldDef passed to constructor. Ownership
williamr@2:          * not transferred.
williamr@2:          * @return Symbian Contacts model contact item field definition. NULL 
williamr@2:          *         if not set.
williamr@2:          */ 
williamr@2:         IMPORT_C CContactItemFieldDef* FieldDef() const;
williamr@2:     
williamr@2:     private:  // Data
williamr@2: 		/// Own: idle finder object
williamr@2:         CIdleFinder* iFinder;
williamr@2: 		/// Own: field definition (array of field types)
williamr@2:         CContactItemFieldDef* iFieldDef;
williamr@2:     };
williamr@2: 
williamr@2: 
williamr@2: #endif // __CPbkIdleFinder_H__
williamr@2: 
williamr@2: // End of File