Telephony/ctsydispatchlayer/exportinc/mltsydispatchphonebookinterface.h
changeset 21 ab1d0f4d2aa4
child 22 e3587ca0d5e1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Telephony/ctsydispatchlayer/exportinc/mltsydispatchphonebookinterface.h	Thu Aug 12 13:20:01 2010 +0100
@@ -0,0 +1,595 @@
+// Copyright (c) 2008-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:
+// This file contains all the interfaces classes that can be implemented by
+// the Licensee LTSY relating to Phonebook related features.
+//
+
+
+
+
+/**
+ @file
+ @internalAll 
+*/
+
+
+#ifndef MLTSYDISPATCHPHONEBOOKINTERFACE_H_
+#define MLTSYDISPATCHPHONEBOOKINTERFACE_H_
+
+#include <ctsy/ltsy/mltsydispatchinterface.h>
+#include <etelmm.h>
+
+#include <ctsy/serviceapi/cmmsmsutility.h>
+
+namespace DispatcherPhonebook
+	{
+	
+	/**
+	 * This namespace contains all types relating to the phonebook dispatcher.
+	 */
+	
+	/**
+	 * Enum containing all the supported phonebook types
+	 */
+	enum TPhonebook
+		{
+		EIccAdn = 0, 	//Abbriviated Dailling Numbers
+		EIccBdn,		//Barred Dailling Numbers
+		EIccSdn,		//Service Dialling numbers
+		EIccFdn,		//Fixed Dialling numbers
+		EIccVmb,		//Voice Mail Box
+		EIccMbdn,		//Mailbox dialling numbers
+		EUnknown
+		};
+	
+	class TPhonebookStoreInfoV1
+		{
+		
+		/**
+		 * This structure contains the details required by the CTSY about the various
+		 * phonebook stores, it is used in the initialisation procedure.
+		 * 
+		 * Total Entries 			- The total number of entries the store can contain.
+		 * Maximum Text Length 		- The maximum length of a text field in the store.
+		 * Maximum Number Length 	- The maximum length of a number in the store.
+		 * Capabilities 			- The Bit field of the stores capabilities (RMobilePhoneStore::TMobilePhoneStoreCaps).
+		 * Maximum Fields Per Entry - The maximum number of fields in a given entry.
+		 */
+		
+	public:
+		
+		TPhonebookStoreInfoV1() :
+			iAdnTotalEntries(-1),
+			iAdnMaximumTextLength(-1),
+			iAdnMaximumNumberLength(-1),
+			iFdnTotalEntries(-1),
+			iFdnMaximumTextLength(-1),
+			iFdnMaximumNumberLength(-1),
+			iSdnTotalEntries(-1),
+			iSdnMaximumTextLength(-1),
+			iSdnMaximumNumberLength(-1),
+			iVmbTotalEntries(-1),
+			iVmbMaximumTextLength(-1),
+			iVmbMaximumNumberLength(-1),
+			iVmbCapabilities(0),
+			iMbdnTotalEntries(-1),
+			iMbdnMaximumTextLength(-1),
+			iMbdnMaximumNumberLength(-1),
+			iMbdnCapabilities(0),
+			iSecondNameMaximumFieldsPerEntry(-1),
+			iSecondNameMaximumLength(-1),
+			iEmailMaximumFieldsPerEntry(-1),
+			iEmailMaximumLength(-1),
+			iAdditionalNumberMaximumFieldsPerEntry(-1),
+			iAdditionalNumberMaximumLength(-1)
+			{
+			}
+		
+		//Abbriviated Dailling Numbers
+		TInt iAdnTotalEntries; 
+		TInt iAdnMaximumTextLength;
+		TInt iAdnMaximumNumberLength;
+
+		//Fixed Dialling numbers
+		TInt iFdnTotalEntries;
+		TInt iFdnMaximumTextLength;
+		TInt iFdnMaximumNumberLength;
+
+		//Service Dialling numbers
+		TInt iSdnTotalEntries;
+		TInt iSdnMaximumTextLength;
+		TInt iSdnMaximumNumberLength;
+
+		//Voice Mail Box
+		TInt iVmbTotalEntries;
+		TInt iVmbMaximumTextLength;
+		TInt iVmbMaximumNumberLength;
+		TInt iVmbCapabilities;
+
+		//Mailbox dialling numbers
+		TInt iMbdnTotalEntries;
+		TInt iMbdnMaximumTextLength;
+		TInt iMbdnMaximumNumberLength;
+		TInt iMbdnCapabilities;
+		
+		//3G Information - Second Names
+		TInt iSecondNameMaximumFieldsPerEntry;
+		TInt iSecondNameMaximumLength;
+
+		//3G Information - Email Address
+		TInt iEmailMaximumFieldsPerEntry;
+		TInt iEmailMaximumLength;
+
+		//3G Information - Additional Number
+		TInt iAdditionalNumberMaximumFieldsPerEntry;
+		TInt iAdditionalNumberMaximumLength;
+		};
+	
+	
+	struct TSmsData
+		{
+	public:	
+	    TBuf8<231> iSmsMsg;
+	    TBuf<KMaxAddressBufferSize> iServiceCentre;
+	    RMobilePhone::TMobileTON iMobileScTON;
+	    RMobilePhone::TMobileNPI iMobileScNPI;
+	    TInt8 iMessageStatus;
+		};
+	
+	}
+
+
+class MLtsyDispatchPhonebookStoreReadEntry : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookStoreReadEntryApiId = KDispatchPhonebookFuncUnitId + 1;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMmTsyPhoneBookStoreReadIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookStoreReadEntryComp()
+	 *
+	 * Implementation of this interface should request to read a number of entries from a given phonebook.
+	 * The entries are returned in the callback.
+	 *
+	 *
+	 * @param aPhonebook The phonebook to read entries from.
+	 * @param aIndex Specifies the index to start reading from, must be >= 1.
+	 * @param aNumSlots Specifies the number of slots to read, must be >= 1 and <= total number of slots.
+	 * 
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 * 
+	 * @see RMobilePhoneBookStore::Read()
+	 */
+	virtual TInt HandleStoreReadEntryReqL(DispatcherPhonebook::TPhonebook aPhonebook, TInt aIndex, TInt aNumberOfSlots) = 0;
+
+	}; // class MLtsyDispatchPhonebookStoreReadEntry
+
+
+
+class MLtsyDispatchPhonebookStoreDeleteEntry : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookStoreDeleteEntryApiId = KDispatchPhonebookFuncUnitId + 2;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMmTsyPhoneBookStoreDeleteIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookStoreDeleteEntryComp()
+	 *
+	 * Implementation of this interface should request to delete an entry from a given phonebook, the
+	 * callback indicates when the operation has been completed.
+	 *
+	 *
+	 * @param aPhonebook The phonebook to delete an entry from.
+	 * @param aIndex The entry index in the phonebook to delete.
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 * 
+	 * @see RMobilePhoneBookStore::Delete()
+	 * 
+	 */
+	virtual TInt HandleStoreDeleteEntryReqL(DispatcherPhonebook::TPhonebook aPhonebook, TInt aIndex) = 0;
+
+	}; // class MLtsyDispatchPhonebookStoreDeleteEntry
+
+
+
+class MLtsyDispatchPhonebookStoreCache : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookStoreCacheApiId = KDispatchPhonebookFuncUnitId + 3;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMmTsyPhoneBookStoreCacheIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookStoreCacheComp()
+	 *
+	 * Implementation of this interface should request to cache a given phonebook, the entire 
+	 * phonebook entries are returned in the callback.
+	 *
+	 *
+	 * @param aPhonebook The phonebook to cache.
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleStoreCacheReqL(DispatcherPhonebook::TPhonebook aPhonebook) = 0;
+
+	}; // class MLtsyDispatchPhonebookStoreCache
+
+
+
+class MLtsyDispatchPhonebookStoreCacheCancel : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookStoreCacheCancelApiId = KDispatchPhonebookFuncUnitId + 4;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMmTsyPhoneBookStoreCacheCancelIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that has no complete call.
+	 *
+	 *
+	 * Implementation of this interface should request to cancel an outstanding cache of a given phonebook.
+	 *
+	 * @param aPhonebook The phonebook to cancel the pending cache.
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleStoreCacheCancelReqL(DispatcherPhonebook::TPhonebook aPhonebook) = 0;
+
+	}; // class MLtsyDispatchPhonebookStoreCacheCancel
+
+
+
+class MLtsyDispatchPhonebookStoreGetPhonebookInfo : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookStoreGetPhonebookInfoApiId = KDispatchPhonebookFuncUnitId + 5;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMmTsyPhoneBookStoreGetInfoIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookStoreGetPhonebookInfoComp()
+	 *
+	 * Implementation of this interface should request to get the information of a given phonebook. The 
+	 * callback should be completed with the information.
+	 * 
+	 * This call to the LTSY is only used when the CTSY requires the information about the number of used entries
+	 * in a phonebook, thus calls to RMobilePhoneBookStore::GetInfo() on cached phonebooks can be completed immediately 
+	 * as the CTSY will already hold this information.
+	 *
+	 *
+	 * @param aPhonebook The phonebook to retrieve the information from.
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 * 
+	 * @see RMobilePhoneBookStore::GetInfo()
+	 * 
+	 */
+	virtual TInt HandleStoreGetPhonebookInfoReqL(DispatcherPhonebook::TPhonebook aPhonebook) = 0;
+
+	}; // class MLtsyDispatchPhonebookStoreGetPhonebookInfo
+
+
+
+class MLtsyDispatchPhonebookStoreInitialise : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookStoreInitialiseApiId = KDispatchPhonebookFuncUnitId + 6;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMmTsyPhoneBookStoreInitIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookStoreInitialiseComp()
+	 *
+	 * Implementation of this interface should request to initialise the phonebook store, the callback should
+	 * be completed when store initialisation is completed.
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleStoreInitialiseReqL() = 0;
+
+	}; // class MLtsyDispatchPhonebookStoreInitialise
+
+
+
+class MLtsyDispatchPhonebookStoreDeleteAll : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookStoreDeleteAllApiId = KDispatchPhonebookFuncUnitId + 7;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMmTsyPhoneBookStoreDeleteAllIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookStoreDeleteAllComp()
+	 *
+	 * Implementation of this interface should request to delete all entries from a given phonebook, the
+	 * callback indicates when the operation is completed.
+	 *
+	 *
+	 * @param aPhonebook The phonebook to delete all entries from.
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 * 
+	 * @see RMobilePhoneBookStore::DeleteAll()
+	 * 
+	 */
+	virtual TInt HandleStoreDeleteAllReqL(DispatcherPhonebook::TPhonebook aPhonebook) = 0;
+
+	}; // class MLtsyDispatchPhonebookStoreDeleteAll
+
+
+
+class MLtsyDispatchPhonebookStoreWriteEntry : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookStoreWriteEntryApiId = KDispatchPhonebookFuncUnitId + 8;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMmTsyPhoneBookStoreWriteIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookStoreWriteEntryComp()
+	 *
+	 * Implementation of this interface should request to write an entry to a given phonebook.
+	 * The callback indicates when the operation is complete.
+	 *
+	 *
+	 * @param aPhonebook The phonebook to be written to.
+	 * @param aEntry The entry to be written, this is coded as a TLV, this can be decoded either
+	 * directly via a CPhoneBookBuffer() or via the CPhoneBookEntry::InternalizeFromTlvEntry() utility.
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 * 
+	 * @see RMobilePhoneBookStore::Write()
+	 * @see CPhoneBookBuffer()
+	 * @see CPhoneBookEntry::InternalizeFromTlvEntry()
+	 * 
+	 */
+	virtual TInt HandleStoreWriteEntryReqL(DispatcherPhonebook::TPhonebook aPhonebook, const TDesC8& aEntry) = 0;
+
+	}; // class MLtsyDispatchPhonebookStoreWriteEntry
+
+
+
+class MLtsyDispatchPhonebookGetPhoneStoreInfo : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookGetPhoneStoreInfoApiId = KDispatchPhonebookFuncUnitId + 9;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneGetPhoneStoreInfo
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookGetPhoneStoreInfoComp()
+	 *
+	 * Implementation of this interface should request to get the information of a given store. The 
+	 * callback should be completed with the information. 
+	 *
+	 *
+	 * @param aStoreName The name of the store to retrieve the information from (e.g. KETelIccFdnPhoneBook).
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 * 
+	 * @see RMobilePhone::GetPhoneStoreInfo()
+	 */
+	virtual TInt HandleGetPhoneStoreInfoReqL(const TDesC& aStoreName) = 0;
+
+	}; // class MLtsyDispatchPhonebookGetPhoneStoreInfo
+
+
+
+class MLtsyDispatchPhonebookSmsStoreReadAll : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookSmsStoreReadAllApiId = KDispatchPhonebookFuncUnitId + 10;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneStoreReadAllPhase1
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookSmsStoreReadAllComp()
+	 *
+	 * Implementation of this interface should handle phase 1 of reading all entries in the SMS storage.
+	 *
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleSmsStoreReadAllReqL() = 0;
+
+	}; // class MLtsyDispatchPhonebookSmsStoreReadAll
+
+
+
+class MLtsyDispatchPhonebookSmsStoreDeleteEntry : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookSmsStoreDeleteEntryApiId = KDispatchPhonebookFuncUnitId + 11;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneStoreDelete
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookSmsStoreDeleteEntryComp()
+	 *
+	 * Implementation of this interface should handle deletion of an entry in the SMS storage.
+	 *
+	 * @param aIndex index of the entry to be deleted.
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleSmsStoreDeleteEntryReqL(TInt aIndex) = 0;
+
+	}; // class MLtsyDispatchPhonebookSmsStoreDeleteEntry
+
+
+
+class MLtsyDispatchPhonebookSmsStoreDeleteAll : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookSmsStoreDeleteAllApiId = KDispatchPhonebookFuncUnitId + 12;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneStoreDeleteAll
+	 * request from the CTSY.
+	 *
+	 * Implementation of this interface should handle deletion of all entries in the SMS storage.
+	 *
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookSmsStoreDeleteAllComp()
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleSmsStoreDeleteAllReqL() = 0;
+
+	}; // class MLtsyDispatchPhonebookSmsStoreDeleteAll
+
+
+
+class MLtsyDispatchPhonebookSmsStoreGetInfo : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookSmsStoreGetInfoApiId = KDispatchPhonebookFuncUnitId + 13;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneStoreGetInfo
+	 * request from the CTSY.
+	 *
+	 * Implementation of this interface should handle retrieval information of the SMS storage.
+	 *
+	 * 
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookSmsStoreGetInfoComp()
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleSmsStoreGetInfoReqL() = 0;
+
+	}; // class MLtsyDispatchPhonebookSmsStoreGetInfo
+
+
+
+class MLtsyDispatchPhonebookSmsStoreReadEntry : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookSmsStoreReadEntryApiId = KDispatchPhonebookFuncUnitId + 14;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneStoreRead
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookSmsStoreReadEntryComp()
+	 *
+	 * Implementation of this interface should handle reading of an entry in the SMS storage.
+	 *
+	 * @param aIndex the index of the entry to read from.
+	 *
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleSmsStoreReadEntryReqL(TInt aIndex) = 0;
+
+	}; // class MLtsyDispatchPhonebookSmsStoreReadEntry
+
+
+
+class MLtsyDispatchPhonebookSmsStoreWriteEntry : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchPhonebookSmsStoreWriteEntryApiId = KDispatchPhonebookFuncUnitId + 15;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneStoreWrite
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackPhonebookSmsStoreWriteEntryComp()
+	 *
+	 * Implementation of this interface should handle the storing of a Gsm Sms entry.
+	 *
+	 * Defines contents of a fixed-size, stored GSM SMS entry.
+	 *
+	 * @param aMobileGsmEntry Defines contents of a fixed-size GSM SMS entry to be stored.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleSmsStoreWriteEntryReqL(const RMobileSmsStore::TMobileGsmSmsEntryV1& aMobileGsmEntry) = 0;
+
+	}; // class MLtsyDispatchPhonebookSmsStoreWriteEntry
+
+
+#endif /*MLTSYDISPATCHPHONEBOOKINTERFACE_H_*/