epoc32/include/app/smsclnt.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@2
     1
// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@4
     4
// under the terms of "Eclipse Public License v1.0"
williamr@2
     5
// which accompanies this distribution, and is available
williamr@4
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@4
    14
// SMSCLNT.H
williamr@2
    15
//
williamr@4
    16
/**
williamr@4
    17
 * @file 
williamr@4
    18
 * @publishedAll
williamr@4
    19
 * @released
williamr@4
    20
 */
williamr@2
    21
#ifndef __SMSCLNT_H__
williamr@2
    22
#define __SMSCLNT_H__
williamr@2
    23
williamr@2
    24
#include <mtclbase.h>
williamr@2
    25
#include <smuthdr.h>
williamr@2
    26
williamr@2
    27
class CSmsHeader;
williamr@2
    28
class CSmsMessage;
williamr@2
    29
class CSmsSettings;
williamr@2
    30
class TSmsUtilities;
williamr@2
    31
class CSmsSimParamOperation;
williamr@2
    32
class CMobilePhoneSmspList;
williamr@2
    33
class RResourceFile;
williamr@2
    34
williamr@2
    35
/** 
williamr@2
    36
The SMS client MTM interface.
williamr@2
    37
williamr@2
    38
Most of the functions in this class are implementations of the virtual functions 
williamr@2
    39
defined by the base class CBaseMtm.
williamr@2
    40
williamr@2
    41
An object of this class can be obtained from the Client MTM registry. The message
williamr@2
    42
server provides the necessary information required by the registry to provide
williamr@2
    43
the SMS client MTM.
williamr@2
    44
williamr@2
    45
All client MTM objects have a current context. This is an entry in the message 
williamr@2
    46
store that will be manipulated by certain APIs supplied by the MTM. If the 
williamr@2
    47
current context is not set then certain APIs will panic. 
williamr@2
    48
williamr@2
    49
The CBaseMtm::HasContext API can be used to check that the current context has 
williamr@2
    50
been set. It can be set using either the CBaseMtm::SwitchCurrenEntryL API or the
williamr@2
    51
CBaseMtm::SetCurrentEntryL API.
williamr@2
    52
williamr@2
    53
@see	CClientMtmRegistry
williamr@2
    54
@see	CBaseMtm::HasContext
williamr@2
    55
@see	CBaseMtm::SetCurrentEntryL
williamr@2
    56
@see	CBaseMtm::SwitchCurrenEntryL
williamr@2
    57
williamr@2
    58
@publishedAll
williamr@2
    59
@released
williamr@2
    60
*/
williamr@4
    61
NONSHARABLE_CLASS (CSmsClientMtm) : public CBaseMtm
williamr@2
    62
	{
williamr@2
    63
public:
williamr@2
    64
williamr@2
    65
	IMPORT_C static CSmsClientMtm* NewL(CRegisteredMtmDll& aRegisteredMtmDll,CMsvSession& aSession);
williamr@2
    66
	virtual ~CSmsClientMtm();
williamr@2
    67
williamr@2
    68
	void HandleEntryEvent(enum MMsvEntryObserver::TMsvEntryEvent,TAny*,TAny*,TAny*);
williamr@2
    69
williamr@2
    70
	inline CSmsHeader& SmsHeader();
williamr@2
    71
	inline const CSmsHeader& SmsHeader() const;
williamr@2
    72
	inline CSmsSettings& ServiceSettings();
williamr@2
    73
	inline const CSmsSettings& ServiceSettings() const;
williamr@2
    74
	inline TInt ServiceId() const;
williamr@2
    75
williamr@2
    76
	IMPORT_C void RestoreServiceAndSettingsL();
williamr@2
    77
	IMPORT_C CSmsSimParamOperation* ReadSimParamsL(TRequestStatus& aObserverRequestStatus);
williamr@4
    78
	IMPORT_C CSmsSimParamOperation* WriteSimParamsL(const CMobilePhoneSmspList& aList, TRequestStatus& aObserverRequestStatus);
williamr@4
    79
	IMPORT_C void SaveMessageL(CMsvStore& aEditStore, TMsvEntry& aEntry);
williamr@4
    80
	IMPORT_C void CreateMessageL(TMsvEntry& aEntry);
williamr@2
    81
	/** 
williamr@2
    82
	Sets the character encoding value. The character encoding value options are 7-bit,
williamr@2
    83
	8-bit and 16-Bit Unicode. By default the character set encoding is 7 bit encoding.
williamr@2
    84
	*/
williamr@2
    85
	void SetMessageCharacterSetL(TSmsDataCodingScheme::TSmsAlphabet aTsmsAlphabet);
williamr@2
    86
williamr@2
    87
public:	// methods from CBaseMtm
williamr@2
    88
williamr@2
    89
	virtual void SaveMessageL(); 
williamr@2
    90
	virtual void LoadMessageL();
williamr@2
    91
	virtual TMsvPartList ValidateMessage(TMsvPartList aPartList);
williamr@2
    92
	virtual TMsvPartList Find(const TDesC& aTextToFind, TMsvPartList aPartList);
williamr@2
    93
	virtual CMsvOperation* ReplyL(TMsvId aDestination, TMsvPartList aPartList, TRequestStatus& aCompletionStatus);
williamr@2
    94
	virtual CMsvOperation* ForwardL(TMsvId aDestination, TMsvPartList aPartList, TRequestStatus& aCompletionStatus);
williamr@2
    95
	virtual void AddAddresseeL(const TDesC& aRealAddress);
williamr@2
    96
	virtual void AddAddresseeL(const TDesC& aRealAddress, const TDesC& aAlias);
williamr@2
    97
	virtual void RemoveAddressee(TInt aIndex);
williamr@2
    98
	virtual TInt QueryCapability(TUid aCapability, TInt& aResponse);
williamr@2
    99
	virtual void InvokeSyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter);
williamr@2
   100
	virtual CMsvOperation* InvokeAsyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter, TRequestStatus& aCompletionStatus);
williamr@2
   101
williamr@2
   102
	IMPORT_C void CreateMessageL(TMsvId aServiceId);
williamr@2
   103
	IMPORT_C void BioTypeChangedL(TUid aBioTypeUid);
williamr@2
   104
	
williamr@2
   105
protected: 
williamr@2
   106
	/**
williamr@2
   107
	Methods from CBaseMtm, The implementation of this function assumes that
williamr@2
   108
    the new service for setting the charset encoding value for a SMS message is supported.
williamr@2
   109
    */
williamr@2
   110
	IMPORT_C virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
williamr@2
   111
 
williamr@2
   112
private:
williamr@2
   113
williamr@2
   114
	CSmsClientMtm(CRegisteredMtmDll& aRegisteredMtmDll,CMsvSession& aSession);
williamr@2
   115
	void ConstructL();
williamr@2
   116
williamr@2
   117
	void BasicReplyForwardEntry(TMsvEntry& aNewEntry) const;
williamr@2
   118
	CMsvOperation* CreateNewEntryL(TMsvEntry& aNewEntry, TMsvId aDestination,CSmsHeader& aSmsHeader,const CRichText& aBody, TRequestStatus& aCompletionStatus);
williamr@2
   119
	TBool ValidRecipients() const;
williamr@2
   120
	TBool ValidNumber(const TDesC& aNumber) const;
williamr@2
   121
williamr@2
   122
private:	// methods from CBaseMtm
williamr@2
   123
williamr@2
   124
	virtual void ContextEntrySwitched(); 
williamr@2
   125
williamr@2
   126
private:
williamr@2
   127
williamr@2
   128
	void DoAddAddresseeL(const TDesC& aRealAddress, const TDesC& aAlias);
williamr@2
   129
	void AddRecipientL(const TDesC& aRealAddress, const TDesC& aAlias);
williamr@2
   130
	void DoAddRecipientL(CSmsHeader* aSmsHeader, const TDesC& aRealAddress, const TDesC& aAlias);
williamr@2
   131
	void ResetHeader();
williamr@2
   132
	TMsvPartList DoFindL(const TDesC& aTextToFind,TMsvPartList aPartList);
williamr@2
   133
	void FindL(const TDesC& aTextToFind, const TMsvPartList aPartList,TMsvPartList& aFoundList);
williamr@2
   134
	void FindInBodyL(const TDesC& aTextToFind, const TMsvPartList& aFoundList, TMsvPartList& aResult);
williamr@2
   135
	HBufC* ReadEmailSubjectFormatL(RResourceFile& aResourceFile, TInt aResourceId, const TDesC& aDefaultFormat);
williamr@2
   136
williamr@2
   137
private:
williamr@2
   138
williamr@2
   139
	CSmsSettings*	iServiceSettings;
williamr@2
   140
	TMsvId			iServiceId;
williamr@2
   141
	CSmsHeader*		iSmsHeader;
williamr@2
   142
	TChar			iRealAddressOpen;
williamr@2
   143
	TChar			iRealAddressClose;
williamr@2
   144
	HBufC*			iEmailForwardSubjectFormat;
williamr@2
   145
	HBufC*			iEmailReplySubjectFormat;
williamr@2
   146
	};
williamr@2
   147
williamr@2
   148
#include <smsclnt.inl>
williamr@2
   149
williamr@2
   150
#endif	// __SMSCLNT_H__