⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smbmusicapsyncservercontentsserviceplremoveitem.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	}


/**
 *  僒乕價僗僉儍儞僙儖捠抦
 **/
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 + -