loggingservices/eventlogger/logcntmodel/inc/logcntmodel.h
changeset 0 08ec8eefde2f
child 14 04ec7606545c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loggingservices/eventlogger/logcntmodel/inc/logcntmodel.h	Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,82 @@
+// Copyright (c) 2006-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 __LOGCNTMODEL_H__
+#define __LOGCNTMODEL_H__
+
+#include <ecom/ecom.h>
+#include "logcntdef.h"
+#include <logwrap.h>
+
+/** Provides an interface to decouple the internal static dependency of LogEng on 
+Contacts.
+ 
+Rather than statically linking against a specific contacts implementation dll
+the log engine dynamically loads a plugin implementation of this class, to remove any need for 
+a direct dependency on a specific Contacts implementation.
+
+The interface is provided to allow logeng to retrieve a string which contains contacts information 
+for a given phone number.
+ 
+@internalAll */
+class MLogCntModel
+	{
+public:
+	/** Opens the contacts DB.	
+	@capability ReadUserData WriteUserData */
+	virtual void OpenContactsL()=0;
+	
+	/** Closes the contacts DB. 
+	@capability None */
+	virtual	void CloseContacts()=0;
+	
+	/** Attempts to find a contact item ID for the contact items which contains
+	the specified telephone number in a telephone, fax or SMS type field.
+	If more than one contact item contains the telephone number this should be 
+	treated the same as no contact found.
+	
+	@capability ReadUserData
+	@param aNumber Phone number string
+	@param aMatchLengthFromRight Number of digits from the right of the phone number to use
+	@return DB Id of the DB entry corresponding to the phone number, KLogNullContactId if none or more than one found */
+	virtual TLogContactItemId MatchPhoneNumberL(const TDesC& aNumber, TInt aMatchLengthFromRight)=0;
+	
+	/** Gets the text data for the family and given name fields of a given contact Id.
+	
+	@capability ReadUserData
+	@param aContactId Contact Id to find data for
+	@param aName On return contains a string holding the family and given name in the desired format if found, a 0 length string otherwise. 
+	The buffer for aName is supplied by the client and should be of a length sufficent to hold a standard contact string.
+	@param aNameFormat Desired format of returned string - Chinese or Western format */
+	virtual void ReadContactNameL(TLogContactItemId aContactId, TDes& aName, TLogContactNameFormat aNameFormat)=0;	
+	};
+
+/** Interface UID to be used by all contacts model plugin's for log engine
+@internalAll */
+const TUid  KUidEComLogCntInterface = {0x20008029};
+
+/** Provides an interface for ECom plugins
+@internalAll */
+class CLogCntModel: public CBase, public MLogCntModel
+	{
+public:
+	IMPORT_C static CLogCntModel* NewL();
+	IMPORT_C virtual ~CLogCntModel();
+private:
+	TUid iDtor_ID_Key;
+	};
+	
+#endif		// __LOGCNTMODEL_H__
+