📄 smbmusicapsyncservercontentsserviceplremoveitem.cpp
字号:
}
/**
* 僒乕價僗僉儍儞僙儖捠抦
**/
void CSmbMusicAPSyncServerContentsServicePLRemoveItem::CancelService()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLRemoveItem | EMusicAPSyncServerLocationNumber07;
_LIT(KServicePLRemoveItemCancelService01, "SyncServerContentsServicePLRemoveItem::CancelService()");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLRemoveItemCancelService01);
#endif
switch(iServiceState)
{
case EContentsServicePLRemoveItemStateRmoveItem: // 僾儗僀儕僗僩傾僀僥儉庢摼拞
{
// 傾僀僥儉惗惉僉儍儞僙儖
iContentsList -> CancelRemoveItem();
// 傾僀僥儉偺悢偑尭偭偰偄傞応崌
TInt count = iContentsList -> GetItemCount();
TInt deleteCount = iOriginalCount - count;
if(iOriginalCount > count)
{
if(EFalse != iAllItems && 0 == count)
{// 慡審嶍彍偺応崌偱丄慡審嶍彍偱偒偨応崌
//傾僀僥儉嶍彍傪捠抦偟傑偡丅
iManagers.AppNotifyManager().NotifyDeleteAllItem(iListHandle);
}
else if(deleteCount > 1)
{// 暋悢審嶍彍偺応崌
//傾僀僥儉嶍彍傪捠抦偟傑偡丅
iManagers.AppNotifyManager().NotifyDeletePluralItem(iListHandle, deleteCount);
}
else
{// 1審嶍彍偺応崌
//傾僀僥儉嶍彍傪捠抦偟傑偡丅
iManagers.AppNotifyManager().NotifyDeleteOneItem(iListHandle, iIndexArray[0]);
}
}
}
break;
case EContentsServicePLRemoveItemStateIdle: // 張棟柍偟
break;
default:
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLRemoveItem | EMusicAPSyncServerLocationNumber08;
_LIT(KServicePLRemoveItemCancelService02, "SyncServerContentsServicePLRemoveItem::CancelService illegal default-route:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServicePLRemoveItemCancelService02, iServiceState);
ASSERT(EFalse);
}
break;
}
MessageComplete(KErrCancel);
// 枹幚峴忬懺傊
iServiceState = EContentsServicePLRemoveItemStateIdle;
if (IsActive() != EFalse)
{
CSmbMusicAPSyncServerContentsServiceBase::Cancel();
}
// 夝彍Index攝楍攋婞
iIndexArray.Reset();
}
/**
* 僒乕價僗宲懕
*
* @return 僒乕價僗張棟偺宲懕忬嫷
**/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServicePLRemoveItem::ContinueServiceL()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLRemoveItem | EMusicAPSyncServerLocationNumber09;
_LIT(KServicePLRemoveItemContinueServiceL01, "SyncServerContentsServicePLRemoveItem::ContinueServiceL()");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLRemoveItemContinueServiceL01);
#endif
TSmbMusicAPSyncServerContentsServiceState retState(ESmbMusicAPSyncServerContetnsServiceStateEnd);
switch(iServiceState)
{
case EContentsServicePLRemoveItemStateRmoveItem: // 搊榐夝彍墳摎懸偪
{
// 傾僾儕偵曉媝偡傞抣偼側偄偨傔儕僋僄僗僩姰椆偺傒
MessageComplete(KErrNone);
// 枹幚峴忬懺傊
iServiceState = EContentsServicePLRemoveItemStateIdle;
// DEL-S [iKeeper(TRK):12273] 搊榐夝彍帪偵屆偄忣曬偑昞帵偝傟偰偄偨栤戣偺懳張
// MW傊搊榐夝彍梫媮姰椆屻偵僉儍僢僔儏攋婞傪偍偙側偆傛偆偵偟偨偨傔丄
// 偙偙偱攋婞偺昁梫偼側偔側偭偨偺偱嶍彍偡傞丅
// TInt targetListHandle = iContentsList->GetListHandle();
//
// // 僒乕僶懁偺傾僀僥儉傪慡偰攋婞丅
// iScreenData.DeleteItem(targetListHandle);
// DEL-E [iKeeper(TRK):12273] 搊榐夝彍帪偵屆偄忣曬偑昞帵偝傟偰偄偨栤戣偺懳張
// 張棟廔椆
retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
if(EFalse != iAllItems)
{// 慡審嶍彍偺応崌偱丄慡審嶍彍偱偒偨応崌
//傾僀僥儉嶍彍傪捠抦偟傑偡丅
iManagers.AppNotifyManager().NotifyDeleteAllItem(iListHandle);
}
else
{
TInt count = iIndexArray.Count();
if(count > 1)
{// 暋悢審嶍彍偺応崌
//傾僀僥儉嶍彍傪捠抦偟傑偡丅
iManagers.AppNotifyManager().NotifyDeletePluralItem(iListHandle, count);
}
else
{// 1審嶍彍偺応崌
//傾僀僥儉嶍彍傪捠抦偟傑偡丅
iManagers.AppNotifyManager().NotifyDeleteOneItem(iListHandle, iIndexArray[0]);
}
}
// 僾儗僀儕僗僩傾僀僥儉攋婞
iIndexArray.Reset();
}
break;
case EContentsServicePLRemoveItemStateIdle: // 張棟柍偟
// 張棟柍偟忬懺偵ContinueService偑屇偽傟傞偙偲偼堎忢宯偱偁傞偨傔default摨條偵張棟偡傞丅
default:
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLRemoveItem | EMusicAPSyncServerLocationNumber10;
_LIT(KServicePLRemoveItemContinueServiceL02, "SyncServerContentsServicePLRemoveItem::ContinueServiceL illegal default-route:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServicePLRemoveItemContinueServiceL02, iServiceState);
ASSERT(EFalse);
}
break;
}
return retState;
}
/**
* 僷儔儊乕僞撉崬
*
* @return 僷儔儊乕僞撉崬惉斲(ETrue:栤戣側偟丄EFalse:栤戣偁傝)
**/
TBool CSmbMusicAPSyncServerContentsServicePLRemoveItem::LoadParamL()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLRemoveItem | EMusicAPSyncServerLocationNumber11;
_LIT(KServicePLRemoveItemLoadParamL01, "SyncServerContentsServicePLRemoveItem::LoadParamL");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLRemoveItemLoadParamL01);
#endif
// 摨婜僄儞僕儞偐傜偺梫媮儊僢僙乕僕偺撉崬
TInt maxLen = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn1);
if (maxLen < sizeof(TSmbMusicAPSyncServerContentsReqPkg))
{ // 僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕挿偑堎忢側応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServicePLRemoveItem | EMusicAPSyncServerLocationNumber12;
_LIT(KServicePLRemoveItemLoadParamL02, "SyncServerContentsServicePLRemoveItem::LoadParamL Argument 1 Error:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLRemoveItemLoadParamL02, maxLen);
#endif
return EFalse;
}
// 梫媮僷僢働乕僕偺撉崬
TInt error(KErrNone);
TSmbMusicAPSyncServerContentsReqPkg reqPkg;
TPckg<TSmbMusicAPSyncServerContentsReqPkg> pkg(reqPkg);
error = iRMessage.Read(KSmbMusicAPSyncEngineMsgIn1, pkg);
if (error != KErrNone)
{ // 僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕偺撉崬偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLRemoveItem | EMusicAPSyncServerLocationNumber13;
_LIT(KServicePLRemoveItemLoadParamL03, "SyncServerContentsServicePLRemoveItem::LoadParamL ContentsReqPkg Load Error:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLRemoveItemLoadParamL03, error);
#endif
return EFalse;
}
iIndexArray.Reset();
// 夝彍懳徾嬋傾僀僥儉
iAllItems = reqPkg.iData.iRemoveItem.iItems.iAllItem;
iListHandle = reqPkg.iData.iRemoveItem.iItems.iListHandle;
if (iAllItems != EFalse)
{ // 慡審夝彍偺応崌
// index攝楍傪巊梡偟側偄偨傔偙偙偱張棟姰椆
return ETrue;
}
// 1審/慖戰夝彍偺応崌偼僋儔僀傾儞僩偐傜偺index攝楍偺撉崬
// 摨婜僄儞僕儞偐傜偺梫媮儊僢僙乕僕偺撉崬
maxLen = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn3); // 桳岠側挿偝傪庢摼
if (maxLen < 0)
{ // 僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕挿偑堎忢側応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServicePLRemoveItem | EMusicAPSyncServerLocationNumber14;
_LIT(KServicePLRemoveItemLoadParamL04, "SyncServerContentsServicePLRemoveItem::LoadParamL Argument 3 Error:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLRemoveItemLoadParamL04, maxLen);
#endif
return EFalse;
}
// 搉偝傟偨攝楍(僶僢僼傽)傪撉傒崬傓偨傔偺僶僢僼傽嶌惉
iIndexCount = maxLen / sizeof(TInt); // 幚嵺偵搉偝傟偨index攝楍偺梫慺悢傪嶼弌
if (iIndexCount == 0)
{ // 梫慺悢偑0偺応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServicePLRemoveItem | EMusicAPSyncServerLocationNumber15;
_LIT(KServicePLRemoveItemLoadParamL05, "SyncServerContentsServicePLRemoveItem::LoadParamL ArrayCount is 0:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLRemoveItemLoadParamL05, iIndexCount);
#endif
return EFalse;
}
iItemArray = new(ELeave)TInt[iIndexCount]; // 撉傒崬傒僶僢僼傽嶌惉
TPtr8 ptr(reinterpret_cast<TUint8*>(iItemArray), maxLen);
// 僶僢僼傽傊撉傒崬傒
error = iRMessage.Read(KSmbMusicAPSyncEngineMsgIn3, ptr);
if (error != KErrNone)
{ // 撉傒崬傒幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServicePLRemoveItem | EMusicAPSyncServerLocationNumber16;
_LIT(KServicePLRemoveItemLoadParamL06, "SyncServerContentsServicePLRemoveItem::LoadParamL Array Load Error:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLRemoveItemLoadParamL06, error);
#endif
delete iItemArray;
iItemArray = NULL;
return EFalse;
}
// 僋儔僀傾儞僩偐傜撉傒崬傫偩Index傪MW偵搉偡摦揑攝楍偵搊榐
for(TInt i = 0; i < iIndexCount; i++)
{
TInt data = iItemArray[i]; // 摦嶌妋擣梡
iIndexArray.AppendL(data + 1); // index僆儕僕儞傪挷惍
}
delete iItemArray;
iItemArray = NULL;
return ETrue;
}
// end of SmbMusicAPSyncServerContentsServicePLRemoveItem.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -