当前位置: 首页>>代码示例>>C++>>正文


C++ CMsvSession::CurrentDriveL方法代码示例

本文整理汇总了C++中CMsvSession::CurrentDriveL方法的典型用法代码示例。如果您正苦于以下问题:C++ CMsvSession::CurrentDriveL方法的具体用法?C++ CMsvSession::CurrentDriveL怎么用?C++ CMsvSession::CurrentDriveL使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CMsvSession的用法示例。


在下文中一共展示了CMsvSession::CurrentDriveL方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: StoreMsgL

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")));
		}
	}
开发者ID:cdaffara,项目名称:symbiandump-mw2,代码行数:80,代码来源:SmsSocketWatcher.cpp


注:本文中的CMsvSession::CurrentDriveL方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。