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

📄 smbmusicapsyncservercontentsserviceplinsertitemow.cpp

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

/**
 *  僾儗僀儕僗僩慖戰嬋捛壛梫媮
 *
 *  @return	張棟惉斲(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServicePLInsertItemOW::InsertSelectSongItem()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber20;
	_LIT(KServicePLInsertItemOWInsertSelectSongItem01, "SyncServerContentsServicePLInsertItemOW::InsertSelectSongItem Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemOWInsertSelectSongItem01);
#endif

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

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

	return KErrNone;
	}


/**
 *  僾儗僀儕僗僩偵捛壛偡傞偨傔偺嬋傾僀僥儉庢摼梫媮
 *
 *  慡嬋庢摼嵪傒偺応崌偼
 *
 *  @return	張棟惉斲(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServicePLInsertItemOW::RequestSongItem()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber22;
	_LIT(KServicePLInsertItemOWRequestSongItem01, "SyncServerContentsServicePLInsertItemOW::RequestSongItem() Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemOWRequestSongItem01);
#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_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber23;
		_LIT(KServicePLInsertItemOWRequestSongItem02, "SyncServerContentsServicePLInsertItemOW::RequestSongItem CreateNewItem Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWRequestSongItem02, error);
#endif
		return error;
		}

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

	return KErrNone;
	}


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

	//  庢摼偟偨儕僗僩攝楍偺梫慺悢僠僃僢僋
	if (ItemArray().Count() < 1)
		{	//  梫慺悢偑懌傝側偄(1側偄)応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber25;
		_LIT(KServicePLInsertItemOWInsertSongItem02, "SyncServerContentsServicePLInsertItemOW::InsertSongItem no enough array:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWInsertSongItem02, 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_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber26;
		_LIT(KServicePLInsertItemOWInsertSongItem03, "SyncServerContentsServicePLInsertItemOW::InsertSongItem GetMusicItemL Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemOWInsertSongItem03, error);
#endif
		return error;
		}
	if (songItem == NULL)
		{	//  庢傝弌偟偨僾儗僀儕僗僩傾僀僥儉偑NULL偩偭偨応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber27;
		_LIT(KServicePLInsertItemOWInsertSongItem04, "SyncServerContentsServicePLInsertItemOW::InsertSongItem GetMusicItemL is NULL");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWInsertSongItem04);
#endif
		return KErrNotFound;
		}

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

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

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

	return KErrNone;
	}

/**
 *  捛壛愭僾儗僀儕僗僩偺僆乕僾儞
 *
 *  @return	梫媮寢壥(KErrNone:梫媮惉岟丄System-wide Error:梫媮幐攕)
 **/
TInt CSmbMusicAPSyncServerContentsServicePLInsertItemOW::PLListOpen()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber30;
	_LIT(KServicePLInsertItemOWPLListOpen01, "SyncServerContentsServicePLInsertItemOW::PLListOpen()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemOWPLListOpen01);
#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_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber31;
			_LIT(KServicePLInsertItemOWPLListOpen02, "SyncServerContentsServicePLInsertItemOW::PLListOpen() PLList Open Error:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWPLListOpen02, result);
#endif
			}
		}

	return result;
	}

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

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


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

	//  摨婜僄儞僕儞偐傜偺梫媮儊僢僙乕僕偺撉崬
	TInt maxLen = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn1);
	if (maxLen < sizeof(TSmbMusicAPSyncServerContentsReqPkg))
		{	//  僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕挿偑堎忢側応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber35;
		_LIT(KServicePLInsertItemOWLoadParamL02, "SyncServerContentsServicePLInsertItemOW::LoadParamL Argument 1 Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWLoadParamL02, 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_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber36;
		_LIT(KServicePLInsertItemOWLoadParamL03, "SyncServerContentsServicePLInsertItemOW::LoadParamL ContentsReqPkg Load Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWLoadParamL03, error);
#endif
		return EFalse;
		}

	TSmbMusicAPSyncServerInsertItemReqMsg& insertItem(reqPkg.iData.iInsertItem);

	//  搊榐愭僾儗僀儕僗僩忣曬
	iPLHandle	 = insertItem.iList.iListHandle;	//  僾儗僀儕僗僩堦棗儕僗僩僴儞僪儖
	iIndex		 = insertItem.iList.iIndex + 1;		//  堦棗儕僗僩撪偱偺懳徾傾僀僥儉偺Index(index僆儕僕儞傪挷惍)
	//  憓擖愭偼僾儗僀儕僗僩撪偺嵟屻偲偄偆巇條偵側偭偨偨傔
	//  慡審嶍彍屻偼忢偵憓擖埵抲偼1偲側傞丅
	//  摨婜僄儞僕儞撪偱巜掕偟偰偁傞偺偱忋彂偒帪偼偦偺傑傑巊梡偡傞偙偲偲偡傞丅
	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_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber37;
		_LIT(KServicePLInsertItemOWLoadParamL04, "SyncServerContentsServicePLInsertItemOW::LoadParamL Argument 3 Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWLoadParamL04, maxLen);
#endif
		return EFalse;
		}

	//  搉偝傟偨攝楍(僶僢僼傽)傪撉傒崬傓偨傔偺僶僢僼傽嶌惉
	iIndexCount = maxLen / sizeof(TInt);			//  幚嵺偵搉偝傟偨index攝楍偺梫慺悢傪嶼弌
	if (iIndexCount == 0)
		{	//  梫慺悢偑0偺応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber38;
		_LIT(KServicePLInsertItemOWLoadParamL05, "SyncServerContentsServicePLInsertItemOW::LoadParamL ArrayCount is 0:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWLoadParamL05, 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_ContentsServicePLInsertItemOW | EMusicAPSyncServerLocationNumber39;
		_LIT(KServicePLInsertItemOWLoadParamL06, "SyncServerContentsServicePLInsertItemOW::LoadParamL Array Load Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemOWLoadParamL06, error);
#endif
		delete iIndexArray;
		iIndexArray = NULL;

		return EFalse;
		}

	return ETrue;
	}
// end of SmbMusicAPSyncServerContentsServicePLInsertItemOW.cpp

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

⌨️ 快捷键说明

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