本文整理汇总了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")));
}
}