--- a/smsprotocols/smsstack/gsmu/inc/gsmumsgadditionalattributes.h Mon May 03 13:37:20 2010 +0300
+++ b/smsprotocols/smsstack/gsmu/inc/gsmumsgadditionalattributes.h Thu May 06 15:10:38 2010 +0100
@@ -1,167 +1,167 @@
-// Copyright (c) 1999-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 defines the container class CSmsMessageAdditionalAttributes.
-//
-//
-
-/**
- @file
-*/
-
-
-#ifndef __GSMUMSGADDITIONALATTRIBUTES_
-#define __GSMUMSGADDITIONALATTRIBUTES_
-
-#include <e32base.h>
-#include <e32std.h>
-#include "Gsmuelem.h"
-#include "gsmuieoperations.h"
-#include "gsmunonieoperations.h"
-
-/**
- * @internalComponent
- *
- * CSmsMessageAdditionalAttributes
- *
- * This class contains additional attributes that would normally be
- * stored in CSmsMessage.
- *
- * The class contains a collections of control information elements.
- * These elements will either be copied into the working PDU for encoding
- * or have been copied from the working pdu for decoding.
- */
-class CSmsMessageAdditionalAttributes : public CBase
-{
-public:
- typedef TSmsInformationElementCategories::TInformationElementCategory TCategory;
- typedef CSmsInformationElement::TSmsInformationElementIdentifier TInformationElementId;
- typedef CSmsInformationElement* CSmsInformationElementPtr;
-
-public:
- static CSmsMessageAdditionalAttributes* NewL();
-
- // client side accessors (intended to be used by CSmsMessage)
- void AddControlInformationElementL(CSmsInformationElement* aIE);
- TBool Find1stInstanceOfControlInformationElement(TInformationElementId aId, TUint& index) const;
- TBool FindNextInstanceOfControlInformationElement(TInformationElementId aId, TUint aStartIndex, TUint& aIndex) const;
- CSmsInformationElement& GetControlInformationElementL(TInformationElementId aId, TUint aIndex) const;
- TBool RemoveControlInformationElement(TInformationElementId aId, TUint aIndex, CSmsInformationElementPtr& aIE);
-
- // stack side interface / encoding / decoding
- void AddControlInformationElementL(TCategory aCategory, CSmsInformationElement* aIE);
- CSmsInformationElement& GetControlInformationElementL(TCategory aCategory, TUint aIndex) const;
- TBool RemoveNextControlInformationElement(TCategory aCategory, CSmsInformationElementPtr& aIE);
- void DeleteControlInformationElement(TCategory aCategory, TUint8 index);
- TUint NumberOfControlInformationElements(TCategory aCategory) const;
-
- CSmsIEOperation& GetIEOperationL(TInformationElementId aId) const;
- CSmsNonIEOperation& GetNonIEOperationL(TSmsNonIEIdentifier aId) const;
- void SetIEOperationL(CSmsIEOperation* aOperation);
- void SetNonIEOperationL(CSmsNonIEOperation* aOperation);
-
- void InternalizeL(RReadStream& aStream, TInt aVersion);
- void ExternalizeL(RWriteStream& aStream, TInt aVersion) const;
-
- void ResetAttributesL();
-
- ~CSmsMessageAdditionalAttributes();
-
- class CSmsStatusReportScheme
- {
- public:
- virtual TSmsStatusReportScheme Id() = 0;
- virtual ~CSmsStatusReportScheme() {};
- };
-
- class CControlParametersScheme : public CSmsStatusReportScheme
- {
- public:
- CControlParametersScheme();
- ~CControlParametersScheme();
- TSmsStatusReportScheme Id();
- public:
- struct TSmsSMSCCtrlParameterStatus
- {
- /** Message reference. */
- TUint iSegmentSequenceNum;
- /** Selective Status Report */
- TUint8 iSelectiveStatus;
- };
- RArray<TSmsSMSCCtrlParameterStatus> iControlParametersStatusReport;
- TUint8 iDefaultStatusReport;
- TInt iNumOfPDUs;
- };
-
- class CTPSRRScheme : public CSmsStatusReportScheme
- {
- public:
- CTPSRRScheme();
- ~CTPSRRScheme();
- TSmsStatusReportScheme Id();
- public:
- struct TSmsTPSRRStatus
- {
- /** Message reference. */
- TUint iSegmentSequenceNum;
- /** TP-SRR Bit. */
- TSmsFirstOctet::TSmsStatusReportRequest iTPSRRStatus;
- };
- RArray<TSmsTPSRRStatus> iTPSRRStatusReport;
- TSmsFirstOctet::TSmsStatusReportRequest iDefaultStatusReport;
- TInt iNumOfPDUs;
- };
-
- class CDefaultScheme : public CSmsStatusReportScheme
- {
- public:
- CDefaultScheme();
- ~CDefaultScheme();
- TSmsStatusReportScheme Id();
- };
-
- CSmsStatusReportScheme& GetStatusReportScheme() const;
- void SetStatusReportSchemeL(TSmsStatusReportScheme aId);
-
- RPointerArray<CSmsPDU>& SmsPDUArray() { return iSmsPDUArray; };
-
- TSmsEncoding Alternative7bitEncoding() const;
- void SetAlternative7bitEncoding(TSmsEncoding aEncoding);
-
-private:
- void ConstructL();
- CSmsMessageAdditionalAttributes();
-
-private:
- typedef CArrayPtrFlat<CSmsInformationElement> CArrayOfPointersToControlInformationElements;
- // comment, not intending to store all categories in additional attributes, some categories will be stored in the working PDU
- // The following categories will be stored here:
- // ECtrlMandatoryIn1stPDUOnly, e.g Reply Address
- // ECtrlSingleInstanceOnly, e.g. Enhanced Voice Mail
- // ECtrlMultipleInstancesAllowed, e.g. Hyperlink format
-
- CArrayOfPointersToControlInformationElements* iCollectionOfPointersToIEArrays[TSmsInformationElementCategories::ENumberOfCategories];
-
- CSmsHyperLinkOperations* iHyperLinkOperations;
- CSmsReplyAddressOperations* iReplyAddressOperations;
- CSmsSpecialSMSMessageOperations* iSpecialSMSMessageOperations;
- CSmsEnhancedVoiceMailOperations* iEnhancedVoiceMailOperations;
- CSmsSMSCCtrlParameterOperations* iSMSCCtrlParameterOperations;
- CSmsTPSRROperations* iTPSRROperations;
- CSmsStatusReportScheme* iStatusReportScheme;
- CIncompleteClass0MessageInfo* iIncompleteClass0MessageInfo;
- RPointerArray<CSmsPDU> iSmsPDUArray;
- TSmsEncoding iAlternative7bitEncoding;
-};
-
-#endif // __GSMUMSGADDITIONALATTRIBUTES_
+// Copyright (c) 1999-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 defines the container class CSmsMessageAdditionalAttributes.
+//
+//
+
+/**
+ @file
+*/
+
+
+#ifndef __GSMUMSGADDITIONALATTRIBUTES_
+#define __GSMUMSGADDITIONALATTRIBUTES_
+
+#include <e32base.h>
+#include <e32std.h>
+#include "Gsmuelem.h"
+#include "gsmuieoperations.h"
+#include "gsmunonieoperations.h"
+
+/**
+ * @internalComponent
+ *
+ * CSmsMessageAdditionalAttributes
+ *
+ * This class contains additional attributes that would normally be
+ * stored in CSmsMessage.
+ *
+ * The class contains a collections of control information elements.
+ * These elements will either be copied into the working PDU for encoding
+ * or have been copied from the working pdu for decoding.
+ */
+class CSmsMessageAdditionalAttributes : public CBase
+{
+public:
+ typedef TSmsInformationElementCategories::TInformationElementCategory TCategory;
+ typedef CSmsInformationElement::TSmsInformationElementIdentifier TInformationElementId;
+ typedef CSmsInformationElement* CSmsInformationElementPtr;
+
+public:
+ static CSmsMessageAdditionalAttributes* NewL();
+
+ // client side accessors (intended to be used by CSmsMessage)
+ void AddControlInformationElementL(CSmsInformationElement* aIE);
+ TBool Find1stInstanceOfControlInformationElement(TInformationElementId aId, TUint& index) const;
+ TBool FindNextInstanceOfControlInformationElement(TInformationElementId aId, TUint aStartIndex, TUint& aIndex) const;
+ CSmsInformationElement& GetControlInformationElementL(TInformationElementId aId, TUint aIndex) const;
+ TBool RemoveControlInformationElement(TInformationElementId aId, TUint aIndex, CSmsInformationElementPtr& aIE);
+
+ // stack side interface / encoding / decoding
+ void AddControlInformationElementL(TCategory aCategory, CSmsInformationElement* aIE);
+ CSmsInformationElement& GetControlInformationElementL(TCategory aCategory, TUint aIndex) const;
+ TBool RemoveNextControlInformationElement(TCategory aCategory, CSmsInformationElementPtr& aIE);
+ void DeleteControlInformationElement(TCategory aCategory, TUint8 index);
+ TUint NumberOfControlInformationElements(TCategory aCategory) const;
+
+ CSmsIEOperation& GetIEOperationL(TInformationElementId aId) const;
+ CSmsNonIEOperation& GetNonIEOperationL(TSmsNonIEIdentifier aId) const;
+ void SetIEOperationL(CSmsIEOperation* aOperation);
+ void SetNonIEOperationL(CSmsNonIEOperation* aOperation);
+
+ void InternalizeL(RReadStream& aStream, TInt aVersion);
+ void ExternalizeL(RWriteStream& aStream, TInt aVersion) const;
+
+ void ResetAttributesL();
+
+ ~CSmsMessageAdditionalAttributes();
+
+ class CSmsStatusReportScheme
+ {
+ public:
+ virtual TSmsStatusReportScheme Id() = 0;
+ virtual ~CSmsStatusReportScheme() {};
+ };
+
+ class CControlParametersScheme : public CSmsStatusReportScheme
+ {
+ public:
+ CControlParametersScheme();
+ ~CControlParametersScheme();
+ TSmsStatusReportScheme Id();
+ public:
+ struct TSmsSMSCCtrlParameterStatus
+ {
+ /** Message reference. */
+ TUint iSegmentSequenceNum;
+ /** Selective Status Report */
+ TUint8 iSelectiveStatus;
+ };
+ RArray<TSmsSMSCCtrlParameterStatus> iControlParametersStatusReport;
+ TUint8 iDefaultStatusReport;
+ TInt iNumOfPDUs;
+ };
+
+ class CTPSRRScheme : public CSmsStatusReportScheme
+ {
+ public:
+ CTPSRRScheme();
+ ~CTPSRRScheme();
+ TSmsStatusReportScheme Id();
+ public:
+ struct TSmsTPSRRStatus
+ {
+ /** Message reference. */
+ TUint iSegmentSequenceNum;
+ /** TP-SRR Bit. */
+ TSmsFirstOctet::TSmsStatusReportRequest iTPSRRStatus;
+ };
+ RArray<TSmsTPSRRStatus> iTPSRRStatusReport;
+ TSmsFirstOctet::TSmsStatusReportRequest iDefaultStatusReport;
+ TInt iNumOfPDUs;
+ };
+
+ class CDefaultScheme : public CSmsStatusReportScheme
+ {
+ public:
+ CDefaultScheme();
+ ~CDefaultScheme();
+ TSmsStatusReportScheme Id();
+ };
+
+ CSmsStatusReportScheme& GetStatusReportScheme() const;
+ void SetStatusReportSchemeL(TSmsStatusReportScheme aId);
+
+ RPointerArray<CSmsPDU>& SmsPDUArray() { return iSmsPDUArray; };
+
+ TSmsEncoding Alternative7bitEncoding() const;
+ void SetAlternative7bitEncoding(TSmsEncoding aEncoding);
+
+private:
+ void ConstructL();
+ CSmsMessageAdditionalAttributes();
+
+private:
+ typedef CArrayPtrFlat<CSmsInformationElement> CArrayOfPointersToControlInformationElements;
+ // comment, not intending to store all categories in additional attributes, some categories will be stored in the working PDU
+ // The following categories will be stored here:
+ // ECtrlMandatoryIn1stPDUOnly, e.g Reply Address
+ // ECtrlSingleInstanceOnly, e.g. Enhanced Voice Mail
+ // ECtrlMultipleInstancesAllowed, e.g. Hyperlink format
+
+ CArrayOfPointersToControlInformationElements* iCollectionOfPointersToIEArrays[TSmsInformationElementCategories::ENumberOfCategories];
+
+ CSmsHyperLinkOperations* iHyperLinkOperations;
+ CSmsReplyAddressOperations* iReplyAddressOperations;
+ CSmsSpecialSMSMessageOperations* iSpecialSMSMessageOperations;
+ CSmsEnhancedVoiceMailOperations* iEnhancedVoiceMailOperations;
+ CSmsSMSCCtrlParameterOperations* iSMSCCtrlParameterOperations;
+ CSmsTPSRROperations* iTPSRROperations;
+ CSmsStatusReportScheme* iStatusReportScheme;
+ CIncompleteClass0MessageInfo* iIncompleteClass0MessageInfo;
+ RPointerArray<CSmsPDU> iSmsPDUArray;
+ TSmsEncoding iAlternative7bitEncoding;
+};
+
+#endif // __GSMUMSGADDITIONALATTRIBUTES_