// Copyright (c) 2005-2009 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: // #ifndef __CNTPHONENUMBERPARSER_H__ #define __CNTPHONENUMBERPARSER_H__ #include #include /** The UID of the phone number parser ECom plugin interface. @released @internalTechnology */ const TUid KUidEcomCntPhoneNumberParserInterface = {0x102035FA}; class CContactPhoneNumberParser : public CBase /** Provides functionality to extract the real phone number from a contact's phone number field. @publishedPartner @released */ { public: virtual void ExtractRawNumber(const TDesC& aTextualNumber, TDes& aRawNumber)=0; }; class CContactEcomPhoneNumberParser : public CContactPhoneNumberParser /** It provides Ecom Framework based facilities to resolve and load the appropriate implementations at run-time. The framework supplies a default resolver for selecting appropriate implementations. @publishedPartner @released */ { public: static CContactEcomPhoneNumberParser* NewL(TUid aImplementationUid); inline virtual ~CContactEcomPhoneNumberParser(); private: TUid iDtor_ID_Key; }; inline CContactEcomPhoneNumberParser* CContactEcomPhoneNumberParser::NewL(TUid aImplementationUid) /** Allocates and Instantiates an interface implementation to satisfy the specified interface. @param aImplementationUid denotes the type of implemetation that need to be loaded. @return A pointer to a newly allocated and initialised object of type CContactEcomPhoneNumberParser. */ { TAny* ptr = REComSession::CreateImplementationL(aImplementationUid, _FOFF(CContactEcomPhoneNumberParser, iDtor_ID_Key)); return reinterpret_cast(ptr); } inline CContactEcomPhoneNumberParser::~CContactEcomPhoneNumberParser() /** The destruction of the interface implementation referred to by iDtor_ID_Key */ { REComSession::DestroyedImplementation(iDtor_ID_Key); } #endif //__CNTPHONENUMBERPARSER_H__