telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmsmsgsmext.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmsmsgsmext.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmsmsgsmext.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,266 +1,266 @@
-// Copyright (c) 2006-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:
-//
-
-
-
-// INCLUDE FILES
-#include <e32std.h>        // error values
-#include <mmlist.h>
-#include "cmmsmsgsmext.h"
-#include <ctsy/tflogger.h>
-#include <ctsy/pluginapi/cmmdatapackage.h>
-#include "cmmphonetsy.h"
-#include <ctsy/serviceapi/cmmsmsutility.h>
-
-// ======== MEMBER FUNCTIONS ========
-
-CMmSmsGsmExt::CMmSmsGsmExt()
-    {
-    }
-
-CMmSmsGsmExt* CMmSmsGsmExt::NewL()
-    {
-    CMmSmsGsmExt* aSmsGsmExt = new ( ELeave ) CMmSmsGsmExt();
-
-    return aSmsGsmExt;
-    }
-
-CMmSmsGsmExt::~CMmSmsGsmExt()
-    {
-    }
-
-// --------------------------------------------------------------------------- 
-// CMmSmsGsmExt::CompleteReceiveMessage 
-// This method takes reception of incoming unstored SMS
-// (other items were commented in a header).
-// --------------------------------------------------------------------------- 
-//
-TInt CMmSmsGsmExt::CompleteReceiveMessage(
-    TSmsMsg* aSmsMsg, 
-    TAny* aReceiveMessageParamsPtr, 
-    TDes8* aReceiveMessagePduPtr )
-    {   
-    RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg* msgAttPckg = 
-        reinterpret_cast< RMobileSmsMessaging::
-        TMobileSmsReceiveAttributesV1Pckg* > ( aReceiveMessageParamsPtr );
-    RMobileSmsMessaging::TMobileSmsReceiveAttributesV1& msgAttributes = 
-        ( *msgAttPckg )();
-
-    // This information is available
-    msgAttributes.iFlags = ( RMobileSmsMessaging::KSmsDataFormat | 
-        RMobileSmsMessaging::KGsmServiceCentre | 
-        RMobileSmsMessaging::KIncomingStatus );
-
-    // Message type
-    msgAttributes.iDataFormat = RMobileSmsMessaging::EFormatGsmTpdu;
-
-    // Lets handle Service Centre address
-    msgAttributes.iGsmServiceCentre.iTypeOfNumber = aSmsMsg->iMobileScTON;
-    msgAttributes.iGsmServiceCentre.iNumberPlan = aSmsMsg->iMobileScNPI;
-    msgAttributes.iGsmServiceCentre.iTelNumber.Copy( 
-        aSmsMsg->iServiceCentre );
-
-     // Copy SMS TPDU
-    aReceiveMessagePduPtr->Copy( aSmsMsg->iSmsMsg );
-
-    if ( KSimSmsNotPresent == aSmsMsg->iMessageStatus )
-        {
-TFLOGSTRING("TSY: CMmSmsGsmExt::CompleteReceiveMessage. Class 0, 1 or 3 message");
-        
-        // SMS message that is routed directly to the TSY. This message is not
-        // acknowledge to the network.
-        msgAttributes.iStatus = 
-            RMobileSmsMessaging::EMtMessageUnstoredClientAck;
-        // Reset store information
-        msgAttributes.iStore.SetLength( 0 );
-        msgAttributes.iStoreIndex = 0;
-        }
-   else if ( aSmsMsg->iSmsClass2 && ( 0 != aSmsMsg->iLocation ) ) 
-        {
-TFLOGSTRING("TSY: CMmSmsGsmExt::CompleteReceiveMessage. Class 2 message stored in SIM");
-        // Class 2 SMS message that is stored in SIM. This message is 
-        // acknowledged to the network by SMS server.
-		msgAttributes.iStatus = RMobileSmsMessaging::EMtMessageUnknownStatus;
-        // Add storage information
-        msgAttributes.iFlags |= RMobileSmsMessaging::KStorageLocation;
-        msgAttributes.iStore = KETelIccSmsStore;
-        msgAttributes.iStoreIndex = aSmsMsg->iLocation;
-        }
-    else
-        {
-TFLOGSTRING("TSY: CMmSmsGsmExt::CompleteReceiveMessage. Class 2 message not stored in SIM");
-        // Class 2 SMS message that is not stored in SIM. This message is 
-        // acknowledged to the network by SMS server.
-        msgAttributes.iStatus = 
-            RMobileSmsMessaging::EMtMessageUnstoredPhoneAck;
-
-        // Reset store information
-        msgAttributes.iStore.SetLength( 0 );
-        msgAttributes.iStoreIndex = 0;
-        }
-
-    return KErrNone;
-    }
-
-// --------------------------------------------------------------------------- 
-// CMmSmsGsmExt::MessageStoreInfo 
-// This method set attributes values to the store info
-// (other items were commented in a header).
-// --------------------------------------------------------------------------- 
-//
-TInt CMmSmsGsmExt::MessageStoreInfo(
-    TAny* aGetMessageStoreInfoPtr, 
-    TInt aTotalEntries, 
-    TInt aUsedEntries )
-    {   
-    RMobileSmsStore::TMobilePhoneStoreInfoV1Pckg* storeInfoPckg = 
-        reinterpret_cast< RMobileSmsStore::TMobilePhoneStoreInfoV1Pckg* >
-        ( aGetMessageStoreInfoPtr );
-    RMobileSmsStore::TMobilePhoneStoreInfoV1& storeInfo = 
-        ( *storeInfoPckg )();
-
-    storeInfo.iName = KETelIccSmsStore;
-    storeInfo.iType = RMobilePhoneStore::EShortMessageStore;
-    storeInfo.iTotalEntries = aTotalEntries;
-    storeInfo.iUsedEntries = aUsedEntries;
-    storeInfo.iCaps = KSmsMessageStoreInfoCaps;
-
-    return KErrNone;
-    }
-
-// --------------------------------------------------------------------------- 
-// CMmSmsGsmExt::StoreInfo 
-// This method set attributes values to the sms store info
-// (other items were commented in a header).
-// --------------------------------------------------------------------------- 
-//
-TInt CMmSmsGsmExt::StoreInfo( 
-    TAny* aGetInfoInfoPtr, 
-    TInt aTotalEntries, 
-    TInt aUsedEntries )
-    {
-    RMobileSmsStore::TMobilePhoneStoreInfoV1Pckg* storeInfoPckg = 
-        reinterpret_cast< RMobileSmsStore::TMobilePhoneStoreInfoV1Pckg* >
-            ( aGetInfoInfoPtr );
-    RMobileSmsStore::TMobilePhoneStoreInfoV1& storeInfo = 
-        ( *storeInfoPckg )();
-
-    storeInfo.iName = KETelIccSmsStore;
-    storeInfo.iType = RMobilePhoneStore::EShortMessageStore;
-    storeInfo.iTotalEntries = aTotalEntries;
-    storeInfo.iUsedEntries = aUsedEntries;
-    storeInfo.iCaps = KSmsStoreInfoCaps;
-        
-    return KErrNone;
-    }
-
-// --------------------------------------------------------------------------- 
-// CMmSmsGsmExt::CompleteReadAllSmsPhase1L 
-// This method read the list, store its content and then return 
-// size of this buffer to client. This methos runs until TSY's 
-// internal SMS storage is empty
-// (other items were commented in a header).
-// --------------------------------------------------------------------------- 
-//
-TInt CMmSmsGsmExt::CompleteReadAllSmsPhase1L(
-    CArrayPtrFlat<TSmsMsg>* aSmsListArray, 
-    RMobilePhone::TClientId aReadAllId, 
-    CArrayPtrFlat<CListReadAllAttempt>* aSmsReadAllArray, 
-    TInt* aReadAllBufSizePtr )
-    {
-TFLOGSTRING("TSY: CMmSmsGsmExt::CompleteReadAllSmsPhase1L");
-    // read the list, store its content and then return size of this 
-    // buffer to client
-    CMobilePhoneGsmSmsList* list = CMobilePhoneGsmSmsList::NewL();
-    CleanupStack::PushL( list );
-
-    RMobileSmsStore::TMobileGsmSmsEntryV1 entry;
-
-    for ( TInt i = 0; i < aSmsListArray->Count(); i++ )
-        {
-        TSmsMsg* smsMsg = aSmsListArray->At( i );
-
-        // Lets handle Service Centre address
-        entry.iServiceCentre.iTypeOfNumber = smsMsg->iMobileScTON;
-        entry.iServiceCentre.iNumberPlan = smsMsg->iMobileScNPI;
-        entry.iServiceCentre.iTelNumber.Copy( smsMsg->iServiceCentre );
-
-        // Lets copy location index
-        entry.iIndex = smsMsg->iLocation;
-
-        // TMobileSmsFixedEntryV1 information
-        entry.iMsgData.Copy( smsMsg->iSmsMsg );
-
-        switch ( smsMsg->iMessageStatus )
-            {
-            case KSimSmsMoNotSent:       //0x07
-                entry.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
-                break;
-            case KSimSmsStatusReportReqNotReceived:     //0x0D
-            case KSimSmsMoSent:          //0x05
-                entry.iMsgStatus = RMobileSmsStore::EStoredMessageSent;
-                break;
-            case KSimSmsMtRead:          //0x01
-                entry.iMsgStatus = RMobileSmsStore::EStoredMessageRead;
-                break;
-            case KSimSmsMtNotRead:       //0x03
-                entry.iMsgStatus = RMobileSmsStore::EStoredMessageUnread;
-                break;
-			case KSimSmsStatusReportReqReceivedNotStored: //0x15
-			case KSimSmsStatusReportReqReceivedStored:   //0x1D
-				entry.iMsgStatus = RMobileSmsStore::EStoredMessageDelivered;
-                break;
-            default:
-                entry.iMsgStatus = 
-                    RMobileSmsStore::EStoredMessageUnknownStatus;
-                break;
-            }
-
-        list->AddEntryL( entry );
-
-        // Delete handled SMS message from TSY's internal store
-        delete smsMsg; // delete object
-        }
-
-    // Store the streamed list and the client ID
-    CListReadAllAttempt* read = CListReadAllAttempt::NewL( &aReadAllId );
-    CleanupStack::PushL( read );
-    
-    read->iListBuf = list->StoreLC();
-    CleanupStack::Pop(); // pop the CBufFlat allocated by StoreLC
-    
-    aSmsReadAllArray->AppendL( read );
-    CleanupStack::Pop(); // pop the CListReadAllAttempt
-    
-    // return the CBufFlat’s size to client
-    *aReadAllBufSizePtr=( read->iListBuf )->Size();
-
-    CleanupStack::PopAndDestroy(list);
-    
-    return KErrNone;
-    }
-
-// --------------------------------------------------------------------------- 
-// CMmSmsGsmExt::GetSupportedEntry 
-// Return supported entry
-// (other items were commented in a header).
-// --------------------------------------------------------------------------- 
-//
-TInt CMmSmsGsmExt::GetSupportedEntry()
-    {
-    return RMobileSmsStore::KETelMobileGsmSmsEntryV1;
-    }
-
-//  End of File 
+// Copyright (c) 2006-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:
+//
+
+
+
+// INCLUDE FILES
+#include <e32std.h>        // error values
+#include <mmlist.h>
+#include "cmmsmsgsmext.h"
+#include <ctsy/tflogger.h>
+#include <ctsy/pluginapi/cmmdatapackage.h>
+#include "cmmphonetsy.h"
+#include <ctsy/serviceapi/cmmsmsutility.h>
+
+// ======== MEMBER FUNCTIONS ========
+
+CMmSmsGsmExt::CMmSmsGsmExt()
+    {
+    }
+
+CMmSmsGsmExt* CMmSmsGsmExt::NewL()
+    {
+    CMmSmsGsmExt* aSmsGsmExt = new ( ELeave ) CMmSmsGsmExt();
+
+    return aSmsGsmExt;
+    }
+
+CMmSmsGsmExt::~CMmSmsGsmExt()
+    {
+    }
+
+// --------------------------------------------------------------------------- 
+// CMmSmsGsmExt::CompleteReceiveMessage 
+// This method takes reception of incoming unstored SMS
+// (other items were commented in a header).
+// --------------------------------------------------------------------------- 
+//
+TInt CMmSmsGsmExt::CompleteReceiveMessage(
+    TSmsMsg* aSmsMsg, 
+    TAny* aReceiveMessageParamsPtr, 
+    TDes8* aReceiveMessagePduPtr )
+    {   
+    RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg* msgAttPckg = 
+        reinterpret_cast< RMobileSmsMessaging::
+        TMobileSmsReceiveAttributesV1Pckg* > ( aReceiveMessageParamsPtr );
+    RMobileSmsMessaging::TMobileSmsReceiveAttributesV1& msgAttributes = 
+        ( *msgAttPckg )();
+
+    // This information is available
+    msgAttributes.iFlags = ( RMobileSmsMessaging::KSmsDataFormat | 
+        RMobileSmsMessaging::KGsmServiceCentre | 
+        RMobileSmsMessaging::KIncomingStatus );
+
+    // Message type
+    msgAttributes.iDataFormat = RMobileSmsMessaging::EFormatGsmTpdu;
+
+    // Lets handle Service Centre address
+    msgAttributes.iGsmServiceCentre.iTypeOfNumber = aSmsMsg->iMobileScTON;
+    msgAttributes.iGsmServiceCentre.iNumberPlan = aSmsMsg->iMobileScNPI;
+    msgAttributes.iGsmServiceCentre.iTelNumber.Copy( 
+        aSmsMsg->iServiceCentre );
+
+     // Copy SMS TPDU
+    aReceiveMessagePduPtr->Copy( aSmsMsg->iSmsMsg );
+
+    if ( KSimSmsNotPresent == aSmsMsg->iMessageStatus )
+        {
+TFLOGSTRING("TSY: CMmSmsGsmExt::CompleteReceiveMessage. Class 0, 1 or 3 message");
+        
+        // SMS message that is routed directly to the TSY. This message is not
+        // acknowledge to the network.
+        msgAttributes.iStatus = 
+            RMobileSmsMessaging::EMtMessageUnstoredClientAck;
+        // Reset store information
+        msgAttributes.iStore.SetLength( 0 );
+        msgAttributes.iStoreIndex = 0;
+        }
+   else if ( aSmsMsg->iSmsClass2 && ( 0 != aSmsMsg->iLocation ) ) 
+        {
+TFLOGSTRING("TSY: CMmSmsGsmExt::CompleteReceiveMessage. Class 2 message stored in SIM");
+        // Class 2 SMS message that is stored in SIM. This message is 
+        // acknowledged to the network by SMS server.
+		msgAttributes.iStatus = RMobileSmsMessaging::EMtMessageUnknownStatus;
+        // Add storage information
+        msgAttributes.iFlags |= RMobileSmsMessaging::KStorageLocation;
+        msgAttributes.iStore = KETelIccSmsStore;
+        msgAttributes.iStoreIndex = aSmsMsg->iLocation;
+        }
+    else
+        {
+TFLOGSTRING("TSY: CMmSmsGsmExt::CompleteReceiveMessage. Class 2 message not stored in SIM");
+        // Class 2 SMS message that is not stored in SIM. This message is 
+        // acknowledged to the network by SMS server.
+        msgAttributes.iStatus = 
+            RMobileSmsMessaging::EMtMessageUnstoredPhoneAck;
+
+        // Reset store information
+        msgAttributes.iStore.SetLength( 0 );
+        msgAttributes.iStoreIndex = 0;
+        }
+
+    return KErrNone;
+    }
+
+// --------------------------------------------------------------------------- 
+// CMmSmsGsmExt::MessageStoreInfo 
+// This method set attributes values to the store info
+// (other items were commented in a header).
+// --------------------------------------------------------------------------- 
+//
+TInt CMmSmsGsmExt::MessageStoreInfo(
+    TAny* aGetMessageStoreInfoPtr, 
+    TInt aTotalEntries, 
+    TInt aUsedEntries )
+    {   
+    RMobileSmsStore::TMobilePhoneStoreInfoV1Pckg* storeInfoPckg = 
+        reinterpret_cast< RMobileSmsStore::TMobilePhoneStoreInfoV1Pckg* >
+        ( aGetMessageStoreInfoPtr );
+    RMobileSmsStore::TMobilePhoneStoreInfoV1& storeInfo = 
+        ( *storeInfoPckg )();
+
+    storeInfo.iName = KETelIccSmsStore;
+    storeInfo.iType = RMobilePhoneStore::EShortMessageStore;
+    storeInfo.iTotalEntries = aTotalEntries;
+    storeInfo.iUsedEntries = aUsedEntries;
+    storeInfo.iCaps = KSmsMessageStoreInfoCaps;
+
+    return KErrNone;
+    }
+
+// --------------------------------------------------------------------------- 
+// CMmSmsGsmExt::StoreInfo 
+// This method set attributes values to the sms store info
+// (other items were commented in a header).
+// --------------------------------------------------------------------------- 
+//
+TInt CMmSmsGsmExt::StoreInfo( 
+    TAny* aGetInfoInfoPtr, 
+    TInt aTotalEntries, 
+    TInt aUsedEntries )
+    {
+    RMobileSmsStore::TMobilePhoneStoreInfoV1Pckg* storeInfoPckg = 
+        reinterpret_cast< RMobileSmsStore::TMobilePhoneStoreInfoV1Pckg* >
+            ( aGetInfoInfoPtr );
+    RMobileSmsStore::TMobilePhoneStoreInfoV1& storeInfo = 
+        ( *storeInfoPckg )();
+
+    storeInfo.iName = KETelIccSmsStore;
+    storeInfo.iType = RMobilePhoneStore::EShortMessageStore;
+    storeInfo.iTotalEntries = aTotalEntries;
+    storeInfo.iUsedEntries = aUsedEntries;
+    storeInfo.iCaps = KSmsStoreInfoCaps;
+        
+    return KErrNone;
+    }
+
+// --------------------------------------------------------------------------- 
+// CMmSmsGsmExt::CompleteReadAllSmsPhase1L 
+// This method read the list, store its content and then return 
+// size of this buffer to client. This methos runs until TSY's 
+// internal SMS storage is empty
+// (other items were commented in a header).
+// --------------------------------------------------------------------------- 
+//
+TInt CMmSmsGsmExt::CompleteReadAllSmsPhase1L(
+    CArrayPtrFlat<TSmsMsg>* aSmsListArray, 
+    RMobilePhone::TClientId aReadAllId, 
+    CArrayPtrFlat<CListReadAllAttempt>* aSmsReadAllArray, 
+    TInt* aReadAllBufSizePtr )
+    {
+TFLOGSTRING("TSY: CMmSmsGsmExt::CompleteReadAllSmsPhase1L");
+    // read the list, store its content and then return size of this 
+    // buffer to client
+    CMobilePhoneGsmSmsList* list = CMobilePhoneGsmSmsList::NewL();
+    CleanupStack::PushL( list );
+
+    RMobileSmsStore::TMobileGsmSmsEntryV1 entry;
+
+    for ( TInt i = 0; i < aSmsListArray->Count(); i++ )
+        {
+        TSmsMsg* smsMsg = aSmsListArray->At( i );
+
+        // Lets handle Service Centre address
+        entry.iServiceCentre.iTypeOfNumber = smsMsg->iMobileScTON;
+        entry.iServiceCentre.iNumberPlan = smsMsg->iMobileScNPI;
+        entry.iServiceCentre.iTelNumber.Copy( smsMsg->iServiceCentre );
+
+        // Lets copy location index
+        entry.iIndex = smsMsg->iLocation;
+
+        // TMobileSmsFixedEntryV1 information
+        entry.iMsgData.Copy( smsMsg->iSmsMsg );
+
+        switch ( smsMsg->iMessageStatus )
+            {
+            case KSimSmsMoNotSent:       //0x07
+                entry.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
+                break;
+            case KSimSmsStatusReportReqNotReceived:     //0x0D
+            case KSimSmsMoSent:          //0x05
+                entry.iMsgStatus = RMobileSmsStore::EStoredMessageSent;
+                break;
+            case KSimSmsMtRead:          //0x01
+                entry.iMsgStatus = RMobileSmsStore::EStoredMessageRead;
+                break;
+            case KSimSmsMtNotRead:       //0x03
+                entry.iMsgStatus = RMobileSmsStore::EStoredMessageUnread;
+                break;
+			case KSimSmsStatusReportReqReceivedNotStored: //0x15
+			case KSimSmsStatusReportReqReceivedStored:   //0x1D
+				entry.iMsgStatus = RMobileSmsStore::EStoredMessageDelivered;
+                break;
+            default:
+                entry.iMsgStatus = 
+                    RMobileSmsStore::EStoredMessageUnknownStatus;
+                break;
+            }
+
+        list->AddEntryL( entry );
+
+        // Delete handled SMS message from TSY's internal store
+        delete smsMsg; // delete object
+        }
+
+    // Store the streamed list and the client ID
+    CListReadAllAttempt* read = CListReadAllAttempt::NewL( &aReadAllId );
+    CleanupStack::PushL( read );
+    
+    read->iListBuf = list->StoreLC();
+    CleanupStack::Pop(); // pop the CBufFlat allocated by StoreLC
+    
+    aSmsReadAllArray->AppendL( read );
+    CleanupStack::Pop(); // pop the CListReadAllAttempt
+    
+    // return the CBufFlat’s size to client
+    *aReadAllBufSizePtr=( read->iListBuf )->Size();
+
+    CleanupStack::PopAndDestroy(list);
+    
+    return KErrNone;
+    }
+
+// --------------------------------------------------------------------------- 
+// CMmSmsGsmExt::GetSupportedEntry 
+// Return supported entry
+// (other items were commented in a header).
+// --------------------------------------------------------------------------- 
+//
+TInt CMmSmsGsmExt::GetSupportedEntry()
+    {
+    return RMobileSmsStore::KETelMobileGsmSmsEntryV1;
+    }
+
+//  End of File