smsprotocols/smsstack/smsprot/Inc/smspsend.h
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smsprotocols/smsstack/smsprot/Inc/smspsend.h	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,124 @@
+// 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:
+// Declares the CSmsuActiveBase based class CSmsMessageSend.
+// 
+//
+
+/**
+ @file
+ @internalAll
+*/
+
+#ifndef __SMSPSEND_H__
+#define __SMSPSEND_H__
+
+#include "smspcomm.h"
+#include <logwrap.h>
+#include <logsmspdudata.h>
+#include "smsuaddr.H"
+#include <etelmm.h>
+#include "Gsmumsg.h"
+#include "smsuact.h"
+#include "smspcdb.h"
+
+
+class TSmsSettings;
+class CSmsSegmentationStore;
+class CLogWrapper;
+class CLogEvent;
+class CSmsEventLogger;
+class CSmspSetBearer;
+
+
+/**
+ *  @internalComponent
+ */
+const TUint8 KTpFcsUnspecifiedError = 0xFF; 	// TP-FCS Unspecified error cause (GSM 03.40/3G TS 23.040)
+
+
+/**
+ *  @internalComponent
+ */
+class CSmsMessageSend : public CSmsuActiveBase
+	{
+public:
+	static CSmsMessageSend* NewL(CSmsSegmentationStore& aSegmentationStore,
+								 const TSmsSettings& aSmsSettings,
+								 const RMobileSmsMessaging::TMobileSmsCapsV1& aMobileSmsCaps,
+								 RMobileSmsMessaging& aSmsMessaging,
+								 TInt aPriority,
+								 CSmspSetBearer& aSmspSetBearer);
+	~CSmsMessageSend();
+
+	void Start(CSmsMessage& aSmsMessage, TInt aOptions,
+			   const TSmsAddr& aSmsAddr, TRequestStatus& aStatus);
+
+protected:
+	void DoRunL();
+	void DoCancel();
+
+private:
+	enum TSmsMessageSendState
+		{
+		ESmsMessageSendIdle,
+		ESmsMessageSendSetBearer,
+		ESmsMessageSendSegmentingMessage,
+		ESmsMessageSendCreatingLogServerEvent,
+		ESmsMessageSendPDU,
+		ESmsMessageSendUpdatingSegmentationStore,
+		ESmsMessageSendUpdatingLogEvent
+		};
+
+	CSmsMessageSend(CSmsSegmentationStore& aSegmentationStore,
+				    const TSmsSettings& aSmsSettings,
+				    const RMobileSmsMessaging::TMobileSmsCapsV1& aMobileSmsCaps,
+				    RMobileSmsMessaging& aSmsMessaging,
+					TInt aPriority,
+					CSmspSetBearer& aSmspSetBearer);
+	void ConstructL();
+
+	void SegmentMessage();
+	void DoSegmentMessageL();
+	void CreateLogServerEvent();
+	void SendNextPDU();
+	void UpdateSegmentationStore();
+	void DoUpdateSegmentationStoreL();
+	void UpdateLogServerEvent();
+	void SetData();
+	void Complete(TInt aStatus);
+	void DecodeSubmitReportL();
+	TBool IsRPError() const;
+
+	TSmsMessageSendState  iState;
+	CSmsSegmentationStore&  iSegmentationStore;
+	CSmspSetBearer&  iSmspSetBearer;			// a reference to owner class' instance
+	const TSmsSettings&  iSmsSettings;					//< Reference to object that contains timeout settings
+	const RMobileSmsMessaging::TMobileSmsCapsV1&  iMobileSmsCaps;	//< Reference to the SMS messaging capabilities of TSY/phone.
+	RMobileSmsMessaging&  iSmsMessaging; 				//< Reference to ETEL SMS messaging subsession
+	RMobileSmsMessaging::TMobileSmsSendAttributesV1  iMobileSmsSendAttributesV1; //< Attribute class for sending SMS message
+	RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg  iMobileSmsSendAttributesV1Pckg; //< Packaged attribute class for sending SMS message
+
+	CSmsMessage*  iSmsMessage;
+	TSmsAddr  iSmsAddr;
+	TInt  iOptions;
+	CSmsEventLogger*  iSmsEventLogger;
+	TLogSmsPduData  iSmsPDUData;
+	TInt  iSendError;
+	CArrayFixFlat<TGsmSms>  iSmsArray;
+	TGsmSmsTelNumber  iToFromTelNumber;
+	TInt  iSegmentSequenceNumber;
+	};
+
+
+#endif // __SMSPSEND_H__