--- a/telephonyserverplugins/simtsy/inc/csimsmsmess.h Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/simtsy/inc/csimsmsmess.h Thu May 06 15:10:38 2010 +0100
@@ -1,255 +1,255 @@
-// Copyright (c) 1997-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:
-//
-
-/**
- @file
- @internalAll
-*/
-
-
-#ifndef __SIMSMSMESS_H_
-#define __SIMSMSMESS_H_
-
-#include <etelmm.h>
-#include <et_phone.h>
-
-#include "CSimPhone.h"
-#include "csimtimer.h"
-
-#include "CSimSmsStore.h"
-#include "utils.h"
-
-const TUint KMaxSmsPduLength=168;
-typedef TBuf8<KMaxSmsPduLength> TSmsPdu;
-
-const TUint KMaxSmsScaLength=100;
-typedef TBuf8<KMaxSmsScaLength> TSmsSca;
-
-const TUint KMaxSmsDestinationLength=50;
-typedef TBuf8<KMaxSmsDestinationLength> TSmsDestination;
-
-const TUint KMaxSmsExpectedErrorLength=10;
-typedef TBuf8<KMaxSmsExpectedErrorLength> TSmsExpectedError;
-
-
-struct TSmsTxParametersGsm
-{
- TInt iFlags;
- RMobileSmsMessaging::TMobileSmsGsmTpdu iPdu;
- TSmsSca iSca;
- TInt iRef;
- RMobileSmsMessaging::TMobileSmsGsmTpdu iSubmitReport;
- TInt iExpectedError;
-};
-
-
-struct TSmsRxParametersGsm
-{
- RMobileSmsMessaging::TMobileSmsGsmTpdu iPdu;
- RMobileSmsMessaging::TMobileSmsGsmTpdu iDeliveryReport;
- TSmsSca iSca;
-};
-
-
-struct TConstraintEntry
-{
- TInt iIpcCnt; // <The Number of times an IPC(now only sendMessage suported)before incoming messages are simulated
- TInt iRxCnt; // <The number of times sms messages are going to be simulated
-};
-
-
-class CSimSmsStore;
-class CSimPhone;
-class CSimSmsMessaging : public CSubSessionExtBase, public MTimerCallBack
- {
-friend class CSimSmsStore;
-
-public:
- static CSimSmsMessaging* NewL(CSimPhone* aPhone);
- CSimSmsMessaging(CSimPhone* aPhone);
- ~CSimSmsMessaging();
-
- static void CloseSmsObj(TAny* aObj);
- const CTestConfigSection* CfgFileSection();
-
- virtual CTelObject::TReqMode ReqModeL(const TInt aIpc);
-// MTelObjectTSY pure virtual
- virtual TInt RegisterNotification(const TInt aIpc);
- virtual TInt DeregisterNotification(const TInt aIpc);
- virtual void Init();
- virtual CTelObject* OpenNewObjectByNameL(const TDesC& aName);
- virtual CTelObject* OpenNewObjectL(TDes& aNewName);
- virtual TInt NumberOfSlotsL(const TInt aIpc);
- virtual TInt CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle);
-
-// MSubSessionExtBaseTSY pure virtual
- virtual TInt ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,const TDataPackage& aPackage);
-
- void ReloadConfigurationSettingsL();
-
-protected:
- void ConstructL();
-
-private:
- enum TSmsRxEvent
- {
- ESmsEventPostedRxReq,
- ESmsEventRxTimer,
- ESmsEventRxAckNack,
- ESmsEventResume
- };
-
- enum TSmsRxState
- {
- ESmsRxStateIdle,
- ESmsRxStateWaitingForSmsRx,
- ESmsRxStateWaitingForNetworkAckNackResponse,
- ESmsRxStateWaitingForAckNack,
- ESmsRxStateSuspend,
- ESmsRxStateWaitingForNetworkResumeResponse,
- ESmsRxStateWaitingToStart
- } iRxState;
-
- enum TSmsTxEvent
- {
- ESmsEventSendReq,
- ESmsEventSubmitReportReceived
- };
-
- enum TSmsTxState
- {
- ESmsTxStateIdle,
- ESmsTxStateWaitingForSubmitReport
- } iTxState;
-
- TInt HandleExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,const TDataPackage& aPackage);
-
- void FindAndCreateSmsStoresL(CSimPhone* aPhone);
- void FindAndCreateRxAttributesL();
- void FindAndCreateTxAttributesL();
- void FindAndCreateConstraints();
- void FindAndCreateSmsParamsL();
-
- TInt ReceiveMessageL(const TTsyReqHandle aTsyReqHandle,TDes8* aSmsPdu,TDes8* aSmsAttrib);
- void ReceiveMessageCancel();
- void SendMessageCancel();
- TInt GetCaps(const TTsyReqHandle aReqHandle,TDes8* aPckg1);
- TInt EnumerateMessagingStores(TTsyReqHandle aReqHandle,TDes8* aPckg);
- TInt GetMessageStoreInfo(TTsyReqHandle aReqHandle,TDes8* aPckg1, TDes8* aPckg2);
- TInt GetReceiveMode(const TTsyReqHandle aReqHandle,TDes8* aPckg);
- TInt SetReceiveMode(const TTsyReqHandle aReqHandle,TDes8* aPckg);
- TInt AckSmsStored(const TTsyReqHandle aReqHandle,TDes8* aMsg,TDes8* aFullFlag);
- TInt NackSmsStored(const TTsyReqHandle aReqHandle,TDes8* aMsg,TDes8* aRpCausePckg);
- void AckNackCancel();
- TInt ResumeSmsReception(const TTsyReqHandle aReqHandle);
- void ResumeSmsReceptionCancel();
- TInt SendMessageL(const TTsyReqHandle aTsyReqHandle,TDes8* aPckg1, TDes8* aPckg2);
- TInt GetSmspListPhase1(const TTsyReqHandle aTsyReqHandle,
- TDes8* aParam1,TDes8* aParam2);
- void GetSmspListPhase1L(TTsyReqHandle aTsyReqHandle,RMobilePhone::TClientId& aClientId,TInt& aBufSize);
- TInt GetSmspListPhase2(const TTsyReqHandle aTsyReqHandle,
- TDes8* aParam1,TDes8* aParam2);
- void GetSmspListCancel();
- TInt StoreSmspList(const TTsyReqHandle aTsyReqHandle,TDes8* aPckg);
- void StoreSmspListCancel();
- void CompletePendingReq();
- void CompleteTxPendingReq(TInt aError);
- TInt AttemptSmsRxComplete();
- void StartSmsMtTimer();
- void TimerCallBack(TInt aId);
- void PopulateSmsRxAttrib(const TDesC8& aAsciiScaAddr,RMobileSmsMessaging::TMobileSmsReceiveAttributesV1* aAttrib);
-
- void PopulateSmsTxAttrib(RMobileSmsMessaging::TMobileSmsSendAttributesV1* aAttrib);
-
- void PopulateSmsTxAttrib(RMobileSmsMessaging::TMobileSmsAttributesV1* aAttrib);
-
- void RecordSca(const TDesC8& aAsciiScaAddr, RMobileSmsMessaging::TMobileSmspEntryV1& aEntry);
- void RecordDestination(const TDesC8& aAsciiScaAddr, RMobileSmsMessaging::TMobileSmspEntryV1& aEntry);
- void PopulateSmspListFromConfigFile();
- TBool IpcMatch();
- TInt ActionRxEventUnstoredClientAck(TSmsRxEvent aRxEvent);
- TInt ActionRxEventUnstoredPhoneAck(TSmsRxEvent aRxEvent);
- TInt ActionRxEventStored(TSmsRxEvent aRxEvent);
- TInt ActionTxEvent(TSmsTxEvent aTxEvent);
-
- TBool CanStartRxEvent() const;
- TBool ConstraintEllapsed() const;
-
- void LogRequest(const TBool aEntering, TInt aIpc, TInt aError);
-
-#ifdef _DEBUG
- void LogTMobileSmsAttributesV1(const RMobileSmsMessaging::TMobileSmsAttributesV1& aSmsAttributesV1);
- void AppendTonToBuffer(TDes8& aBuffer, const RMobilePhone::TMobileTON& aTon);
- void AppendNpiToBuffer(TDes8& aBuffer, const RMobilePhone::TMobileNPI& aNpi);
-#endif
-
- HBufC8* PduToAscii(TDesC8& aSmsPdu);
- void DumpPdu(const TDesC8& aText, TDesC8& aSmsPdu, HBufC8* aPduInAscii = 0);
-
- void Reset();
- void InitializeL();
-
-private:
-
- CSimTimer* iRxTimer;
- CSimTimer* iTxTimer;
- CSimTimer* iSmspTimer;
- TTsyReqHandle iSmsRxReqHandle;
- TTsyReqHandle iSmsTxReqHandle;
- TTsyReqHandle iSmspReqHandle;
- TTsyReqHandle iPendingReqHandle; // < Request handle for pending Ack, Nack or Resume Completion.
-
- CSimPhone* iPhone;
- CArrayFixFlat<CSimSmsStore*>* iSmsStores;
-
- CArrayFixFlat<TSmsRxParametersGsm>* iSmsRxParameterListGsm; // < Contains the values associated with the SmsRx tag for GSM
-
- TInt iSmsRxPeriod; // < The period between simulating received SMS messages.
- TInt iAckNackCompletePause; // < The pause before Ack/Nack requests are completed.
- TInt iResumeCompletePause; // < The pause before Resume requests are completed.
- TBool iSmsStoreFull; // < Flag to indicate that last Ack/NAck received stated that the store was full.
- TInt iSmsRxCnt; // < Count of the number of SMS messages received.
- TBool iSmsRxReqOutstanding; // < Flags if ReceiveMessage has been posted by the client
- TDes8* iSmsRxPdu;
- RMobileSmsMessaging::TMobileSmsReceiveAttributesV1* iSmsRxAttrib; // <Attributes to be return to the client On ReceiveMessage completion
-
- CArrayFixFlat<TSmsTxParametersGsm>* iSmsTxParametersListGsm; // < Contains the values associated with the Smstx tag
-
- RMobileSmsMessaging::TMobileSmsSendAttributesV1* iSmsTxAttrib; // <Attributes to be return to the client On SendMessage completion
-
- TInt iSmsTxCnt; // < Count the number times RSmsMessaging::SendMessage. completes
- TInt iSmsTxPause; // < The period between the layer 3 send request and the submit report reception
- RMobileSmsMessaging::TMobileSmsControlCaps iSmsControlCaps; // < The control capabilities of messaging(TMobileSmsControlCaps)
-
- RMobileSmsMessaging::TMobileSmsReceiveMode iSmsReceiveMode; // < The control capabilities of messaging(TMobileSmsControlCaps)
-
- //constraint
- TInt iCurrentConstraint; // < The index in the iConstraints Array currently in use
- TInt iConstraintRxCnt; // < The number of SmsMessages received under 1 constraint
- RArray<TConstraintEntry> iConstraints; // < An array of constraints
-
- //smsp
- CArrayPtrFlat<CListReadAllAttempt>* iSmspReadAll; // < A list of the oustanding two phase batch read requests.
- CMobilePhoneSmspList* iSmspEntries; // < A pointer to the SMSpList array.
- TInt iSmspBatchPause; // < The pause value used to delay the completion of a batch SMS Store manipulation request.
- TBool iSmspBusy; // < Used as a semaphore to avoid store/get at the same time.
-
- RMobileSmsMessaging::TMobileSmsModeCaps iSmsModeCaps; // < The mode capabilities of messaging(TMobileSmsControlCaps)
- TInt iSmsRxStartDelay;
- TBool iSmsReceiveModeSet;
- TUint8 iLastTxMsgId[2];
- };
-
-#endif // __SIMSMSMESS_H_
+// Copyright (c) 1997-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:
+//
+
+/**
+ @file
+ @internalAll
+*/
+
+
+#ifndef __SIMSMSMESS_H_
+#define __SIMSMSMESS_H_
+
+#include <etelmm.h>
+#include <et_phone.h>
+
+#include "CSimPhone.h"
+#include "csimtimer.h"
+
+#include "CSimSmsStore.h"
+#include "utils.h"
+
+const TUint KMaxSmsPduLength=168;
+typedef TBuf8<KMaxSmsPduLength> TSmsPdu;
+
+const TUint KMaxSmsScaLength=100;
+typedef TBuf8<KMaxSmsScaLength> TSmsSca;
+
+const TUint KMaxSmsDestinationLength=50;
+typedef TBuf8<KMaxSmsDestinationLength> TSmsDestination;
+
+const TUint KMaxSmsExpectedErrorLength=10;
+typedef TBuf8<KMaxSmsExpectedErrorLength> TSmsExpectedError;
+
+
+struct TSmsTxParametersGsm
+{
+ TInt iFlags;
+ RMobileSmsMessaging::TMobileSmsGsmTpdu iPdu;
+ TSmsSca iSca;
+ TInt iRef;
+ RMobileSmsMessaging::TMobileSmsGsmTpdu iSubmitReport;
+ TInt iExpectedError;
+};
+
+
+struct TSmsRxParametersGsm
+{
+ RMobileSmsMessaging::TMobileSmsGsmTpdu iPdu;
+ RMobileSmsMessaging::TMobileSmsGsmTpdu iDeliveryReport;
+ TSmsSca iSca;
+};
+
+
+struct TConstraintEntry
+{
+ TInt iIpcCnt; // <The Number of times an IPC(now only sendMessage suported)before incoming messages are simulated
+ TInt iRxCnt; // <The number of times sms messages are going to be simulated
+};
+
+
+class CSimSmsStore;
+class CSimPhone;
+class CSimSmsMessaging : public CSubSessionExtBase, public MTimerCallBack
+ {
+friend class CSimSmsStore;
+
+public:
+ static CSimSmsMessaging* NewL(CSimPhone* aPhone);
+ CSimSmsMessaging(CSimPhone* aPhone);
+ ~CSimSmsMessaging();
+
+ static void CloseSmsObj(TAny* aObj);
+ const CTestConfigSection* CfgFileSection();
+
+ virtual CTelObject::TReqMode ReqModeL(const TInt aIpc);
+// MTelObjectTSY pure virtual
+ virtual TInt RegisterNotification(const TInt aIpc);
+ virtual TInt DeregisterNotification(const TInt aIpc);
+ virtual void Init();
+ virtual CTelObject* OpenNewObjectByNameL(const TDesC& aName);
+ virtual CTelObject* OpenNewObjectL(TDes& aNewName);
+ virtual TInt NumberOfSlotsL(const TInt aIpc);
+ virtual TInt CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle);
+
+// MSubSessionExtBaseTSY pure virtual
+ virtual TInt ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,const TDataPackage& aPackage);
+
+ void ReloadConfigurationSettingsL();
+
+protected:
+ void ConstructL();
+
+private:
+ enum TSmsRxEvent
+ {
+ ESmsEventPostedRxReq,
+ ESmsEventRxTimer,
+ ESmsEventRxAckNack,
+ ESmsEventResume
+ };
+
+ enum TSmsRxState
+ {
+ ESmsRxStateIdle,
+ ESmsRxStateWaitingForSmsRx,
+ ESmsRxStateWaitingForNetworkAckNackResponse,
+ ESmsRxStateWaitingForAckNack,
+ ESmsRxStateSuspend,
+ ESmsRxStateWaitingForNetworkResumeResponse,
+ ESmsRxStateWaitingToStart
+ } iRxState;
+
+ enum TSmsTxEvent
+ {
+ ESmsEventSendReq,
+ ESmsEventSubmitReportReceived
+ };
+
+ enum TSmsTxState
+ {
+ ESmsTxStateIdle,
+ ESmsTxStateWaitingForSubmitReport
+ } iTxState;
+
+ TInt HandleExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,const TDataPackage& aPackage);
+
+ void FindAndCreateSmsStoresL(CSimPhone* aPhone);
+ void FindAndCreateRxAttributesL();
+ void FindAndCreateTxAttributesL();
+ void FindAndCreateConstraints();
+ void FindAndCreateSmsParamsL();
+
+ TInt ReceiveMessageL(const TTsyReqHandle aTsyReqHandle,TDes8* aSmsPdu,TDes8* aSmsAttrib);
+ void ReceiveMessageCancel();
+ void SendMessageCancel();
+ TInt GetCaps(const TTsyReqHandle aReqHandle,TDes8* aPckg1);
+ TInt EnumerateMessagingStores(TTsyReqHandle aReqHandle,TDes8* aPckg);
+ TInt GetMessageStoreInfo(TTsyReqHandle aReqHandle,TDes8* aPckg1, TDes8* aPckg2);
+ TInt GetReceiveMode(const TTsyReqHandle aReqHandle,TDes8* aPckg);
+ TInt SetReceiveMode(const TTsyReqHandle aReqHandle,TDes8* aPckg);
+ TInt AckSmsStored(const TTsyReqHandle aReqHandle,TDes8* aMsg,TDes8* aFullFlag);
+ TInt NackSmsStored(const TTsyReqHandle aReqHandle,TDes8* aMsg,TDes8* aRpCausePckg);
+ void AckNackCancel();
+ TInt ResumeSmsReception(const TTsyReqHandle aReqHandle);
+ void ResumeSmsReceptionCancel();
+ TInt SendMessageL(const TTsyReqHandle aTsyReqHandle,TDes8* aPckg1, TDes8* aPckg2);
+ TInt GetSmspListPhase1(const TTsyReqHandle aTsyReqHandle,
+ TDes8* aParam1,TDes8* aParam2);
+ void GetSmspListPhase1L(TTsyReqHandle aTsyReqHandle,RMobilePhone::TClientId& aClientId,TInt& aBufSize);
+ TInt GetSmspListPhase2(const TTsyReqHandle aTsyReqHandle,
+ TDes8* aParam1,TDes8* aParam2);
+ void GetSmspListCancel();
+ TInt StoreSmspList(const TTsyReqHandle aTsyReqHandle,TDes8* aPckg);
+ void StoreSmspListCancel();
+ void CompletePendingReq();
+ void CompleteTxPendingReq(TInt aError);
+ TInt AttemptSmsRxComplete();
+ void StartSmsMtTimer();
+ void TimerCallBack(TInt aId);
+ void PopulateSmsRxAttrib(const TDesC8& aAsciiScaAddr,RMobileSmsMessaging::TMobileSmsReceiveAttributesV1* aAttrib);
+
+ void PopulateSmsTxAttrib(RMobileSmsMessaging::TMobileSmsSendAttributesV1* aAttrib);
+
+ void PopulateSmsTxAttrib(RMobileSmsMessaging::TMobileSmsAttributesV1* aAttrib);
+
+ void RecordSca(const TDesC8& aAsciiScaAddr, RMobileSmsMessaging::TMobileSmspEntryV1& aEntry);
+ void RecordDestination(const TDesC8& aAsciiScaAddr, RMobileSmsMessaging::TMobileSmspEntryV1& aEntry);
+ void PopulateSmspListFromConfigFile();
+ TBool IpcMatch();
+ TInt ActionRxEventUnstoredClientAck(TSmsRxEvent aRxEvent);
+ TInt ActionRxEventUnstoredPhoneAck(TSmsRxEvent aRxEvent);
+ TInt ActionRxEventStored(TSmsRxEvent aRxEvent);
+ TInt ActionTxEvent(TSmsTxEvent aTxEvent);
+
+ TBool CanStartRxEvent() const;
+ TBool ConstraintEllapsed() const;
+
+ void LogRequest(const TBool aEntering, TInt aIpc, TInt aError);
+
+#ifdef _DEBUG
+ void LogTMobileSmsAttributesV1(const RMobileSmsMessaging::TMobileSmsAttributesV1& aSmsAttributesV1);
+ void AppendTonToBuffer(TDes8& aBuffer, const RMobilePhone::TMobileTON& aTon);
+ void AppendNpiToBuffer(TDes8& aBuffer, const RMobilePhone::TMobileNPI& aNpi);
+#endif
+
+ HBufC8* PduToAscii(TDesC8& aSmsPdu);
+ void DumpPdu(const TDesC8& aText, TDesC8& aSmsPdu, HBufC8* aPduInAscii = 0);
+
+ void Reset();
+ void InitializeL();
+
+private:
+
+ CSimTimer* iRxTimer;
+ CSimTimer* iTxTimer;
+ CSimTimer* iSmspTimer;
+ TTsyReqHandle iSmsRxReqHandle;
+ TTsyReqHandle iSmsTxReqHandle;
+ TTsyReqHandle iSmspReqHandle;
+ TTsyReqHandle iPendingReqHandle; // < Request handle for pending Ack, Nack or Resume Completion.
+
+ CSimPhone* iPhone;
+ CArrayFixFlat<CSimSmsStore*>* iSmsStores;
+
+ CArrayFixFlat<TSmsRxParametersGsm>* iSmsRxParameterListGsm; // < Contains the values associated with the SmsRx tag for GSM
+
+ TInt iSmsRxPeriod; // < The period between simulating received SMS messages.
+ TInt iAckNackCompletePause; // < The pause before Ack/Nack requests are completed.
+ TInt iResumeCompletePause; // < The pause before Resume requests are completed.
+ TBool iSmsStoreFull; // < Flag to indicate that last Ack/NAck received stated that the store was full.
+ TInt iSmsRxCnt; // < Count of the number of SMS messages received.
+ TBool iSmsRxReqOutstanding; // < Flags if ReceiveMessage has been posted by the client
+ TDes8* iSmsRxPdu;
+ RMobileSmsMessaging::TMobileSmsReceiveAttributesV1* iSmsRxAttrib; // <Attributes to be return to the client On ReceiveMessage completion
+
+ CArrayFixFlat<TSmsTxParametersGsm>* iSmsTxParametersListGsm; // < Contains the values associated with the Smstx tag
+
+ RMobileSmsMessaging::TMobileSmsSendAttributesV1* iSmsTxAttrib; // <Attributes to be return to the client On SendMessage completion
+
+ TInt iSmsTxCnt; // < Count the number times RSmsMessaging::SendMessage. completes
+ TInt iSmsTxPause; // < The period between the layer 3 send request and the submit report reception
+ RMobileSmsMessaging::TMobileSmsControlCaps iSmsControlCaps; // < The control capabilities of messaging(TMobileSmsControlCaps)
+
+ RMobileSmsMessaging::TMobileSmsReceiveMode iSmsReceiveMode; // < The control capabilities of messaging(TMobileSmsControlCaps)
+
+ //constraint
+ TInt iCurrentConstraint; // < The index in the iConstraints Array currently in use
+ TInt iConstraintRxCnt; // < The number of SmsMessages received under 1 constraint
+ RArray<TConstraintEntry> iConstraints; // < An array of constraints
+
+ //smsp
+ CArrayPtrFlat<CListReadAllAttempt>* iSmspReadAll; // < A list of the oustanding two phase batch read requests.
+ CMobilePhoneSmspList* iSmspEntries; // < A pointer to the SMSpList array.
+ TInt iSmspBatchPause; // < The pause value used to delay the completion of a batch SMS Store manipulation request.
+ TBool iSmspBusy; // < Used as a semaphore to avoid store/get at the same time.
+
+ RMobileSmsMessaging::TMobileSmsModeCaps iSmsModeCaps; // < The mode capabilities of messaging(TMobileSmsControlCaps)
+ TInt iSmsRxStartDelay;
+ TBool iSmsReceiveModeSet;
+ TUint8 iLastTxMsgId[2];
+ };
+
+#endif // __SIMSMSMESS_H_