smsprotocols/smsstack/smsprot/Src/smspmondsk.cpp
branchRCL_3
changeset 66 07a122eea281
parent 65 630d2f34d719
equal deleted inserted replaced
65:630d2f34d719 66:07a122eea281
     1 // Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    43 /**
    43 /**
    44  @file
    44  @file
    45  @internalComponent 
    45  @internalComponent 
    46 */
    46 */
    47 
    47 
    48 
       
    49 #include "OstTraceDefinitions.h"
       
    50 #ifdef OST_TRACE_COMPILER_IN_USE
       
    51 #include "smspmondskTraces.h"
       
    52 #endif
       
    53 
       
    54 #include <barsc.h>
    48 #include <barsc.h>
    55 #include <bautils.h>
    49 #include <bautils.h>
    56 
    50 
    57 #include "smspcomm.h"
    51 #include "smspcomm.h"
    58 #include "smspmondsk.h"
    52 #include "smspmondsk.h"
    72  *  
    66  *  
    73  *  @return a newly created CSmsMonitorDiskSpace object.
    67  *  @return a newly created CSmsMonitorDiskSpace object.
    74  */
    68  */
    75 CSmsMonitorDiskSpace* CSmsMonitorDiskSpace::NewL(MSmsComm& aSmsComm, RMobileSmsMessaging& aSmsMessaging,RFs& aFs)
    69 CSmsMonitorDiskSpace* CSmsMonitorDiskSpace::NewL(MSmsComm& aSmsComm, RMobileSmsMessaging& aSmsMessaging,RFs& aFs)
    76 	{
    70 	{
    77 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_NEWL_1, "CSmsMonitorDiskSpace::NewL()");
    71 	LOGSMSPROT1("CSmsMonitorDiskSpace::NewL()");
    78 
    72 
    79 	CSmsMonitorDiskSpace*  self = new(ELeave) CSmsMonitorDiskSpace(aSmsComm, aSmsMessaging, aFs);
    73 	CSmsMonitorDiskSpace*  self = new(ELeave) CSmsMonitorDiskSpace(aSmsComm, aSmsMessaging, aFs);
    80 	CleanupStack::PushL(self);
    74 	CleanupStack::PushL(self);
    81 	self->ConstructL();
    75 	self->ConstructL();
    82 	CleanupStack::Pop();
    76 	CleanupStack::Pop();
   161 #endif
   155 #endif
   162 
   156 
   163 	//
   157 	//
   164 	// Log the filename in use and whether it is ROM based...
   158 	// Log the filename in use and whether it is ROM based...
   165 	//
   159 	//
   166 	OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_CONSTRUCTL_1, "CSmsMonitorDiskSpace::ConstructL(): fileName=\"%S\"", fileName);
   160 #ifdef _SMS_LOGGING_ENABLED
   167 
   161 	TBuf8<KMaxFileName>  buf8;
       
   162 	buf8.Copy(fileName);
       
   163 	LOGSMSPROT2("CSmsMonitorDiskSpace::ConstructL(): fileName=\"%S\"", &buf8);
       
   164 #endif
   168 
   165 
   169     if (iFs.IsFileInRom(fileName) == NULL)
   166     if (iFs.IsFileInRom(fileName) == NULL)
   170     	{
   167     	{
   171      	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_CONSTRUCTL_2, "CSmsMonitorDiskSpace::ConstructL(): Smsu.rsc not in ROM");
   168      	LOGSMSPROT1("CSmsMonitorDiskSpace::ConstructL(): Smsu.rsc not in ROM");
   172      	}
   169      	}
   173 
   170 
   174 	//
   171 	//
   175 	// Read the low and high limits...
   172 	// Read the low and high limits...
   176 	//
   173 	//
   200         iInOODTesting = ETrue;
   197         iInOODTesting = ETrue;
   201         
   198         
   202         TInt ret = iFreeDiskSpaceProperty.Attach(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey);
   199         TInt ret = iFreeDiskSpaceProperty.Attach(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey);
   203         if (ret != KErrNone)
   200         if (ret != KErrNone)
   204             {
   201             {
   205             OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_CONSTRUCTL_3, "iFreeDiskSpaceProperty.Attach(): error=%d", ret);
   202             LOGSMSPROT2("iFreeDiskSpaceProperty.Attach(): error=%d", ret);
   206             User::Leave(ret);
   203             User::Leave(ret);
   207             }                        
   204             }                        
   208         }   
   205         }   
   209 #endif        
   206 #endif        
   210     
   207     
   211 	OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_CONSTRUCTL_4, "CSmsMonitorDiskSpace::ConstructL(): iLowLimit=%u, iHighLimit=%u",iLowLimit, iHighLimit);
   208 	LOGSMSPROT3("CSmsMonitorDiskSpace::ConstructL(): iLowLimit=%d, iHighLimit=%d",
       
   209 			    iLowLimit, iHighLimit);
   212 	} // CSmsMonitorDiskSpace::ConstructL
   210 	} // CSmsMonitorDiskSpace::ConstructL
   213 
   211 
   214 
   212 
   215 /**
   213 /**
   216  *  Handles a completed disk monitor or resume request.
   214  *  Handles a completed disk monitor or resume request.
   217  */
   215  */
   218 void CSmsMonitorDiskSpace::RunL()
   216 void CSmsMonitorDiskSpace::RunL()
   219 	{
   217 	{
   220 	OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_RUNL_1, "CSmsMonitorDiskSpace:RunL(): iStatus=%d, iState=%d",iStatus.Int(), iState );
   218 	LOGSMSPROT3("CSmsMonitorDiskSpace:RunL(): iStatus=%d, iState=%d",
       
   219 	            iStatus.Int(), iState );
   221 
   220 
   222 	switch (iState)
   221 	switch (iState)
   223 		{
   222 		{
   224 		case ESmsMonitorDiskSpaceMonitorLowLimit:
   223 		case ESmsMonitorDiskSpaceMonitorLowLimit:
   225 			{
   224 			{
   299 /**
   298 /**
   300  *  Handles a request to cancel the current state machine operation.
   299  *  Handles a request to cancel the current state machine operation.
   301  */
   300  */
   302 void CSmsMonitorDiskSpace::DoCancel()
   301 void CSmsMonitorDiskSpace::DoCancel()
   303 	{
   302 	{
   304 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_DOCANCEL_1, "CSmsMonitorDiskSpace::DoCancel(): iState=%d", iState);
   303 	LOGSMSPROT2("CSmsMonitorDiskSpace::DoCancel(): iState=%d", iState);
   305 
   304 
   306     switch (iState)
   305     switch (iState)
   307 		{
   306 		{
   308 		case ESmsMonitorDiskSpaceIdle:
   307 		case ESmsMonitorDiskSpaceIdle:
   309 			{
   308 			{
   347 /**
   346 /**
   348  *  Checks for enough disk space, and starts monitoring disk space if needed.
   347  *  Checks for enough disk space, and starts monitoring disk space if needed.
   349  */
   348  */
   350 void CSmsMonitorDiskSpace::CheckDiskSpaceForPDUL(TBool aPDUIsClass0)
   349 void CSmsMonitorDiskSpace::CheckDiskSpaceForPDUL(TBool aPDUIsClass0)
   351 	{
   350 	{
   352 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_CHECKDISKSPACEFORPDUL_1, "CSmsMonitorDiskSpace::CheckDiskSpaceForPDUL(): aPDUIsClass0=%d",aPDUIsClass0);
   351 	LOGSMSPROT2("CSmsMonitorDiskSpace::CheckDiskSpaceForPDUL(): aPDUIsClass0=%d",
       
   352 				aPDUIsClass0);
   353 
   353 
   354 	//
   354 	//
   355 	// First check the actual disk space before working out what to do.
   355 	// First check the actual disk space before working out what to do.
   356 	// 
   356 	// 
   357 	// If enough space exists, then we don't need to do anything else (even if
   357 	// If enough space exists, then we don't need to do anything else (even if
   436  *  @param aState  State to transition to when this request is made.
   436  *  @param aState  State to transition to when this request is made.
   437  */
   437  */
   438 void CSmsMonitorDiskSpace::NotifyDiskSpace(TInt aLimit,
   438 void CSmsMonitorDiskSpace::NotifyDiskSpace(TInt aLimit,
   439 										   TSmsMonitorDiskSpaceState aState)
   439 										   TSmsMonitorDiskSpaceState aState)
   440 	{
   440 	{
   441 	OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_NOTIFYDISKSPACE_1, "CSmsMonitorDiskSpace::NotifyDiskSpace(): aLimit=%d, aState=%d",aLimit, aState);
   441 	LOGSMSPROT3("CSmsMonitorDiskSpace::NotifyDiskSpace(): aLimit=%d, aState=%d",
       
   442 				aLimit, aState);
   442 
   443 
   443 	//
   444 	//
   444 	// Cancel any previously outstanding requests...
   445 	// Cancel any previously outstanding requests...
   445 	//
   446 	//
   446 	if (iState != ESmsMonitorDiskSpaceIdle)
   447 	if (iState != ESmsMonitorDiskSpaceIdle)
   510  *         SMS may attempt to be delivered, but monitoring will restart as
   511  *         SMS may attempt to be delivered, but monitoring will restart as
   511  *         before. So again no problem.
   512  *         before. So again no problem.
   512  */
   513  */
   513 void CSmsMonitorDiskSpace::ResumeSmsReception()
   514 void CSmsMonitorDiskSpace::ResumeSmsReception()
   514 	{
   515 	{
   515 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_RESUMESMSRECEPTION_1, "CSmsMonitorDiskSpace::ResumeSmsReception");
   516 	LOGSMSPROT1("CSmsMonitorDiskSpace::ResumeSmsReception");
   516 
   517 
   517 	//
   518 	//
   518 	// Cancel any previously outstanding requests...
   519 	// Cancel any previously outstanding requests...
   519 	//
   520 	//
   520 	if (iState != ESmsMonitorDiskSpaceIdle)
   521 	if (iState != ESmsMonitorDiskSpaceIdle)
   566 	// Get the volume info for drive C:...
   567 	// Get the volume info for drive C:...
   567 	//
   568 	//
   568     
   569     
   569 	if (ret != KErrNone) 
   570 	if (ret != KErrNone) 
   570 		{
   571 		{
   571 		OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_GETFREEDISKSPACE_1, "CSmsMonitorDiskSpace::GetFreeDiskSpace(): error=%d", ret);
   572 		LOGSMSPROT2("CSmsMonitorDiskSpace::GetFreeDiskSpace(): error=%d", ret);
   572 		return KErrGeneral;
   573 		return KErrGeneral;
   573 		}
   574 		}
   574 
   575 
   575 	//
   576 	//
   576 	// Convert the disk space value to a TInt (allowing 2GB limits)...
   577 	// Convert the disk space value to a TInt (allowing 2GB limits)...
   584 	else
   585 	else
   585 		{
   586 		{
   586 		freeSpace = (TInt) volumeInfo.iFree;
   587 		freeSpace = (TInt) volumeInfo.iFree;
   587 		}
   588 		}
   588 
   589 
   589 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSMONITORDISKSPACE_GETFREEDISKSPACE_2, "CSmsMonitorDiskSpace::GetFreeDiskSpace(): freeSpace=%d", freeSpace);
   590 	LOGSMSPROT2("CSmsMonitorDiskSpace::GetFreeDiskSpace(): freeSpace=%d", freeSpace);
   590 
   591 
   591 	return freeSpace;
   592 	return freeSpace;
   592 	} // CSmsMonitorDiskSpace::GetFreeDiskSpace
   593 	} // CSmsMonitorDiskSpace::GetFreeDiskSpace