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

📄 smbmusicapsyncservercontentsserviceplinsertitem.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber19;
	_LIT(KServicePLInsertItemInsertSelectSongItem01, "SyncServerContentsServicePLInsertItem::InsertSelectSongItem Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemInsertSelectSongItem01);
#endif

	//  僾儗僀儕僗僩偵懳偟嬋捛壛傪梫媮
	TInt error = iPLItem -> InsertItem(iInsertIndex, iHandleArray, iStatus);
	if (error != KErrNone)
		{	//  捛壛梫媮張棟偑僄儔乕偺応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber20;
		_LIT(KServicePLInsertItemInsertSelectSongItem02, "SyncServerContentsServicePLInsertItem::InsertSelectSongItem InsertItem Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemInsertSelectSongItem02, error);
#endif
		return error;
		}

	//  忬懺傪嬋傾僀僥儉捛壛張棟拞傊
	iServiceState = EContentsServicePLInsertItemStateInsertItem;

	return KErrNone;
	}


/**
 *  僾儗僀儕僗僩偵捛壛偡傞偨傔偺嬋傾僀僥儉庢摼梫媮
 *
 *  慡嬋庢摼嵪傒偺応崌偼
 *
 *  @return	張棟惉斲(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServicePLInsertItem::RequestSongItem()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber21;
	_LIT(KServicePLInsertItemRequestSongItem01, "SyncServerContentsServicePLInsertItem::RequestSongItem() Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemRequestSongItem01);
#endif

	TInt error(KErrNone);
	//  攝楍偺愭摢偺捛壛嬋偺Index傪庢摼
	TInt songIndex = iIndexArray[iSongIndex] + 1;	//  index僆儕僕儞傪挷惍
	iSongIndex++;	//  張棟偟偨屄悢傪+1

	//  傾僀僥儉儕僗僩偺弶婜壔
	ItemArray().Reset();

	//  捛壛偡傞嬋傾僀僥儉庢摼
	error = iItemList -> CreateNewItem(ItemArray(), songIndex, 1, iStatus);
	if (error != KErrNone)
		{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber22;
		_LIT(KServicePLInsertItemRequestSongItem02, "SyncServerContentsServicePLInsertItem::RequestSongItem CreateNewItem Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemRequestSongItem02, error);
#endif
		return error;
		}

	//  傾僀僥儉庢摼懸偪忬懺傊
	iServiceState = EContentsServicePLInsertItemStateGetSongItem;

	return KErrNone;
	}


/**
 *  僾儗僀僞僀僩儖曄峏張棟
 *
 *  @return	曄峏張棟惉斲(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServicePLInsertItem::InsertSongItem()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber23;
	_LIT(KServicePLInsertItemInsertSongItem01, "SyncServerContentsServicePLInsertItem::InsertSongItem() Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemInsertSongItem01);
#endif

	//  庢摼偟偨儕僗僩攝楍偺梫慺悢僠僃僢僋
	if (ItemArray().Count() < 1)
		{	//  梫慺悢偑懌傝側偄(1側偄)応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber24;
		_LIT(KServicePLInsertItemInsertSongItem02, "SyncServerContentsServicePLInsertItem::InsertSongItem no enough array:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemInsertSongItem02, ItemArray().Count());
#endif
		return KErrNotReady;
		}

	TInt error(KErrNone);
	CSmbMusicMWLibSongItem* songItem(NULL);
	//  庢摼偟偨儕僗僩攝楍偐傜僾儗僀儕僗僩傾僀僥儉傪庢傝弌偡
	TRAP(error, songItem = static_cast<CSmbMusicMWLibSongItem*>(ItemArray().GetMusicItemL(0)););
	if (error != KErrNone)
		{	//  僾儗僀儕僗僩傾僀僥儉偺庢傝弌偟偵幐攕偟偨応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber25;
		_LIT(KServicePLInsertItemInsertSongItem03, "SyncServerContentsServicePLInsertItem::InsertSongItem GetMusicItemL Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemInsertSongItem03, error);
#endif
		return error;
		}
	if (songItem == NULL)
		{	//  庢傝弌偟偨僾儗僀儕僗僩傾僀僥儉偑NULL偩偭偨応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber26;
		_LIT(KServicePLInsertItemInsertSongItem04, "SyncServerContentsServicePLInsertItem::InsertSongItem GetMusicItemL is NULL");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemInsertSongItem04);
#endif
		return KErrNotFound;
		}

	//  庢摼偟偨嬋傾僀僥儉偺僴儞僪儖傪攝楍偵捛壛偡傞
	TRAP(error, iHandleArray.AppendL(songItem -> Handle()););
	if (error != KErrNone)
		{	//  僴儞僪儖偺捛壛偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber27;
		_LIT(KServicePLInsertItemInsertSongItem05, "SyncServerContentsServicePLInsertItem::InsertSongItem HandleArray Append Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemInsertSongItem05, error);
#endif
		return error;
		}

	//  庢摼偟偨嬋傾僀僥儉傪攝楍偵捛壛偡傞丅
	error = iSongArray.Append(songItem);
	if (error != KErrNone)
		{	//  嬋傾僀僥儉偺捛壛偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber28;
		_LIT(KServicePLInsertItemInsertSongItem06, "SyncServerContentsServicePLInsertItem::InsertSongItem SongArray Append Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemInsertSongItem06, error);
#endif
		return error;
		}

	//  傾僀僥儉儕僗僩偺弶婜壔
	ItemArray().Reset();

	return KErrNone;
	}


/**
 *  捛壛愭僾儗僀儕僗僩偺僆乕僾儞
 *
 *  @return	梫媮寢壥(KErrNone:梫媮惉岟丄System-wide Error:梫媮幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServicePLInsertItem::PLListOpen()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber29;
	_LIT(KServicePLInsertItemPLListOpen01, "SyncServerContentsServicePLInsertItem::PLListOpen()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemPLListOpen01);
#endif
	ASSERT(iPLItem != NULL);

	TInt result(KErrNone);
	if (iListOpen == EFalse)
		{	//  捛壛愭僾儗僀儕僗僩偑枹僆乕僾儞偺応崌
		result = iPLItem -> Open(iStatus);
		if (result == KErrNone)
			{	//  捛壛愭僾儗僀儕僗僩偺僆乕僾儞偵惉岟
			iListOpen = ETrue;	//  捛壛愭僾儗僀儕僗僩偺僆乕僾儞
			}
		else
			{	//  捛壛愭僾儗僀儕僗僩偺僆乕僾儞偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
			logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber30;
			_LIT(KServicePLInsertItemPLListOpen02, "SyncServerContentsServicePLInsertItem::PLListOpen() PLList Open Error:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemPLListOpen02, result);
#endif
			}
		}

	return result;
	}

/**
 *  捛壛愭僾儗僀儕僗僩偺僋儘乕僘
 **/
void CSmbMusicAPSyncServerContentsServicePLInsertItem::PLListClose()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber31;
	_LIT(KServicePLInsertItemPLListClose01, "SyncServerContentsServicePLInsertItem::PLListClose()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemPLListClose01);
#endif
	ASSERT(iPLItem != NULL);

	if (iListOpen != EFalse)
		{	//  僾儗僀儕僗僩僆乕僾儞帪(梫媮拞偺応崌傕娷傓)
		TInt result = iPLItem -> Close();
		if (result == KErrNone)
			{	//  僾儗僀儕僗僩僆乕僾儞張棟僉儍儞僙儖惉岟
			iListOpen = EFalse;	//  僾儗僀儕僗僩僆乕僾儞僼儔僌僋儕傾
			}
		else
			{	//  僾儗僀儕僗僩僆乕僾儞張棟僉儍儞僙儖幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
			logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber32;
			_LIT(KServicePLInsertItemPLListClose02, "SyncServerContentsServicePLInsertItem::PLListClose Close Error:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemPLListClose02, result);
#endif
			}
		}
	}


/**
 *  僷儔儊乕僞撉崬
 *
 *  @return	僷儔儊乕僞撉崬惉斲(ETrue:栤戣側偟丄EFalse:栤戣偁傝)
 **/
TBool CSmbMusicAPSyncServerContentsServicePLInsertItem::LoadParamL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber33;
	_LIT(KServicePLInsertItemLoadParamL01, "SyncServerContentsServicePLInsertItem::LoadParamL");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemLoadParamL01);
#endif

	//  摨婜僄儞僕儞偐傜偺梫媮儊僢僙乕僕偺撉崬
	TInt maxLen = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn1);
	if (maxLen < sizeof(TSmbMusicAPSyncServerContentsReqPkg))
		{	//  僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕挿偑堎忢側応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber34;
		_LIT(KServicePLInsertItemLoadParamL02, "SyncServerContentsServicePLInsertItem::LoadParamL Argument 1 Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemLoadParamL02, maxLen);
#endif
		return EFalse;
		}

	//  梫媮僷僢働乕僕偺撉崬
	TInt error(KErrNone);
	TSmbMusicAPSyncServerContentsReqPkg reqPkg;
	TPckg<TSmbMusicAPSyncServerContentsReqPkg> pkg(reqPkg);
	error = iRMessage.Read(KSmbMusicAPSyncEngineMsgIn1, pkg);
	if (error != KErrNone)
		{	//  僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕偺撉崬偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber35;
		_LIT(KServicePLInsertItemLoadParamL03, "SyncServerContentsServicePLInsertItem::LoadParamL ContentsReqPkg Load Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemLoadParamL03, error);
#endif
		return EFalse;
		}

	TSmbMusicAPSyncServerInsertItemReqMsg& insertItem(reqPkg.iData.iInsertItem);

	//  搊榐愭僾儗僀儕僗僩忣曬
	iPLHandle	 = insertItem.iList.iListHandle;	//  僾儗僀儕僗僩堦棗儕僗僩僴儞僪儖
	iIndex		 = insertItem.iList.iIndex + 1;		//  堦棗儕僗僩撪偱偺懳徾傾僀僥儉偺Index(index僆儕僕儞傪挷惍)
	iInsertIndex = insertItem.iIndex + 1;			//  僾儗僀儕僗僩嬋堦棗偺傾僀僥儉捛壛埵抲Index(index僆儕僕儞傪挷惍)

	//  搊榐尦傾僀僥儉忣曬
	iListHandle	= insertItem.iItems.iListHandle;	//  捛壛嬋傾僀僥儉傪帩偮儕僗僩偺僴儞僪儖
	iAllItems	= insertItem.iItems.iAllItem;		//  慡審捛壛僼儔僌
	if (iAllItems != EFalse)
		{	//  慡審捛壛偺応崌
		//  攝楍僨乕僞偼巊傢側偄偺偱偙偙偱張棟傪姰椆偡傞丅
		return ETrue;
		}

	//  1審/慖戰捛壛偺応崌偼index楍傪庢摼偡傞
	delete iIndexArray;
	iIndexArray = NULL;

	//  摨婜僄儞僕儞偐傜偺梫媮儊僢僙乕僕偺撉崬(攝楍僨乕僞)
	maxLen = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn3);
	if (maxLen < 0)
		{	//  僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕挿偑堎忢側応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber36;
		_LIT(KServicePLInsertItemLoadParamL04, "SyncServerContentsServicePLInsertItem::LoadParamL Argument 3 Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemLoadParamL04, maxLen);
#endif
		return EFalse;
		}

	//  搉偝傟偨攝楍(僶僢僼傽)傪撉傒崬傓偨傔偺僶僢僼傽嶌惉
	iIndexCount = maxLen / sizeof(TInt);			//  幚嵺偵搉偝傟偨index攝楍偺梫慺悢傪嶼弌
	if (iIndexCount == 0)
		{	//  梫慺悢偑0偺応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber37;
		_LIT(KServicePLInsertItemLoadParamL05, "SyncServerContentsServicePLInsertItem::LoadParamL ArrayCount is 0:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemLoadParamL05, iIndexCount);
#endif
		return EFalse;
		}
	iIndexArray = new(ELeave)TInt[iIndexCount];		//  撉傒崬傒僶僢僼傽嶌惉
	TPtr8 ptr(reinterpret_cast<TUint8*>(iIndexArray), maxLen);
	//  僶僢僼傽傊撉傒崬傒
	error = iRMessage.Read(KSmbMusicAPSyncEngineMsgIn3, ptr);
	if (error != KErrNone)
		{	//  撉傒崬傒幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber38;
		_LIT(KServicePLInsertItemLoadParamL06, "SyncServerContentsServicePLInsertItem::LoadParamL Array Load Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemLoadParamL06, error);
#endif
		delete iIndexArray;
		iIndexArray = NULL;

		return EFalse;
		}

	return ETrue;
	}

// end of SmbMusicAPSyncServerContentsServicePLInsertItem.cpp

/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -