void Context::Destroy() { #if !defined(FINAL) && defined(WIN32) DestroyConsole(); #endif LogMessageL("Destroyed context"); }
EXPORT_C void CBaseSmsActiveSocketWatcher::StoreMsgL(CSmsMessage* aSmsMessage, TBool aCheckForSID) { BIOWATCHERLOG(iWatcherLog.Printf(_L("Bio: StoreMsgL: %S"), &iBioMsgText)); CleanupStack::PushL(aSmsMessage); CMsvSession* session = CMsvSession::OpenSyncL(*this); CleanupStack::PushL(session); BIOWATCHERLOG(LogMessageL(*aSmsMessage)); // The trap error code is ignored here. We already have loaded the settings // in the SetupL method. Any catastrophic failure would be reported later // when the message store is attempted. TRAP_IGNORE(RestoreSettingsL(*session)); PreStoreActionL(*session, *aSmsMessage); CMsvEntry* msvEntry = session->GetEntryL(KMsvGlobalInBoxIndexEntryId); CleanupStack::PushL(msvEntry); TInt systemDrive = RFs::GetSystemDrive(); TInt driveUnit = session->CurrentDriveL(); TVolumeInfo volumeInfo; User::LeaveIfError(iFs.Volume(volumeInfo, driveUnit)); BIOWATCHERLOG(iWatcherLog.Printf(_L("BioNbs: driveUnit: %d "),driveUnit)); BIOWATCHERLOG(iWatcherLog.Printf(_L("BioNbs: volumeInfo : %d"), volumeInfo.iFree)); BIOWATCHERLOG(iWatcherLog.Printf(_L("BioNbs: threshold level= : %d"), KSmsThresholdDiskSpaceValue)); //Check if non-system drive has enough space to store the message if (driveUnit != systemDrive ) { BIOWATCHERLOG(iWatcherLog.Printf(_L8("Low Memory"))); TInt value; TInt err = RProperty::Get(KUidSystemCategory,KUidPSDiskSpaceMonitorKeyType, value); BIOWATCHERLOG(iWatcherLog.Printf(_L("RProperty Get Value: %d "),err)); if (volumeInfo.iFree < KSmsThresholdDiskSpaceValue) { if(value == ESmsDiskSpaceAvailable) { User::LeaveIfError(RProperty::Set(KUidSystemCategory,KUidPSDiskSpaceMonitorKeyType, ESmsDiskSpaceFull)); } User::Leave(KErrDiskFull); } else { if(value == ESmsDiskSpaceFull) { User::LeaveIfError(RProperty::Set(KUidSystemCategory,KUidPSDiskSpaceMonitorKeyType, ESmsDiskSpaceAvailable)); } } } if( CanStoreMessage() ) { TBool retainReplaceMessage = ETrue; ReplaceTypeMessageL(*msvEntry, *aSmsMessage, retainReplaceMessage); CleanupStack::Pop(3, aSmsMessage); CleanupStack::PushL(session); //guaranteed not leave because of the 3 previous POPs CleanupStack::PushL(msvEntry); if( retainReplaceMessage ) CreateMessageL(*msvEntry, aSmsMessage, aCheckForSID); //destroys the CSmsMessage else delete aSmsMessage; //destroy the CSmsMessage as CreateMessageL() would have done CleanupStack::PopAndDestroy(2, session); } else { CleanupStack::PopAndDestroy(3, aSmsMessage); BIOWATCHERLOG(iWatcherLog.Printf(_L8("Not Creating Message"))); } }