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

📄 smbmusicapsyncservercontentsservicegetimagefile.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	///<夋憸僼傽僀儖庢摼忬懺
	case EGetImageFileState:
		//夋憸僼傽僀儖庢摼拞巭
		CancelGetImage();
		break;

	default:
		//婎杮揑偵偙偙偵偔傞帠偼偁傝偊側偄偺偱儘僌傪弌椡偡傞
		break;
		}


	//偲傝偁偊偢僄儔乕傪捠抦偟傑偡
	CompleteThisService(res);

	//惗惉偟偨僆僽僕僃僋僩偺嶍彍
	DeleteObject();

	//埨掕忬懺偵栠偡
	iState = EIdleState;

	Cancel();
	}


/**
 *  僒乕價僗宲懕張棟
 * @param [in]	側偟
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageFile::ContinueServiceL()
	{
	//張棟宲懕偺僼儔僌
	TSmbMusicAPSyncServerContentsServiceState retState = ESmbMusicAPSyncServerContetnsServiceStateContinue;
	switch(iState)
		{
	///<梫媮側偟忬懺
	case EIdleState:
		//張棟柍偟偱廔椆偡傞
		retState = CompleteThisService(KErrServerBusy);
		break;

	///<傾僀僥儉惗惉忬懺
	case ECreateItemState:
		retState = StartGetImageL();
		break;

	///<夋憸僼傽僀儖庢摼忬懺
	case EGetImageFileState:
		//夋憸僼傽僀儖庢摼張棟姰椆
		retState = CompleteGetImage(KErrNone);
		break;

	default:
		//婎杮揑偵偙偙偵偔傞帠偼偁傝偊側偄偺偱儘僌傪弌椡偡傞
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageFile| EMusicAPSyncServerLocationNumber03;
		_LIT(KContentsServiceGetImageFile03, "SyncServerContentsServiceGetImageFile::ContinueServiceL State = %d");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageFile03, iState);

		//張棟柍偟偱廔椆偡傞
		retState = CompleteThisService(KErrServerBusy);
		break;
		}
	return retState;

	}

/**
 *  僉儍儞僙儖梫媮偵懳偡傞僒乕價僗僉儍儞僙儖敾掕
 *
 *  @param[in]	aCancelEvent	僉儍儞僙儖梫媮偝傟偨僀儀儞僩僞僀僾
 *
 *  @return	僉儍儞僙儖傪庴偗傞偐偳偆偐偺敾掕(ETrue:梫媮僉儍儞僙儖丄EFalse:梫媮傪僉儍儞僙儖偟側偄)
 **/
TBool CSmbMusicAPSyncServerContentsServiceGetImageFile::CheckCancel(TSmbMusicAPSyncServerFunction aCancelEvent)
	{
	if (aCancelEvent == ESmbMusicAPSyncServerFuncCancelGetImage)
		{	//  帺僒乕價僗偺僉儍儞僙儖梫媮偺応崌
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageFile| EMusicAPSyncServerLocationNumber07;
		_LIT(KContentsServiceGetImageFile07, "SyncServerContentsServiceGetImageFile::CheckCancel");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelLowest, KContentsServiceGetImageFile07);

		return ETrue;
		}
	return EFalse;
	}

/**
 *  梫媮儊僢僙乕僕偺撪梕傪僐僺乕偡傞
 * @param [in]	側偟
 * @return		側偟
 */
void CSmbMusicAPSyncServerContentsServiceGetImageFile::ReadParamFromMsgL()
	{
	//梫媮儊僢僙乕僕偺撪梕傪惗惉
	iReqPkg = new(ELeave)TSmbMusicAPSyncServerContentsReqPkg;
	iReqTPckg = new(ELeave)TPckg<TSmbMusicAPSyncServerContentsReqPkg>(*iReqPkg);

	//庴怣儊僢僙乕僕傪僐僺乕偡傞
	iRMessage.ReadL(KSmbMusicAPSyncEngineMsgIn1,*iReqTPckg);

	//MW亅傾僾儕娫偱Index偵僘儗偑偁傞偺偱曗惓偡傞
	iReqPkg->iData.iGetImage.iGetImageInfo.iSongItem.iIndex++;

	//奿擺偝傟偰偄傞僨乕僞挿傪庢摼偡傞
	TInt leng = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn2);

//	if(0 != leng)
//		{
//		//梫媮偝傟偨僼傽僀儖柤傪僐僺乕偡傞
//		iRMessage.ReadL(KSmbMusicAPSyncEngineMsgIn2,*iReqFile);
//		}

	//僼傽僀儖柤偺挿偝傪僠僃僢僋偟傑偡
	if( (leng > KSmMaxTitleLength) || (leng < 1) )
		{
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageFile| EMusicAPSyncServerLocationNumber05;
		_LIT(KContentsServiceGetImageFile05, "SyncServerContentsServiceGetImageFile::ReadParamFromMsgL leng = %d");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageFile05, leng);

		//僼傽僀儖柤偑揔愗偱偼側偄偺偱Leave偟傑偡
		User::Leave(KErrArgument);
		}

	//僼傽僀儖柤奿擺椞堟傪惗惉偡傞
	iReqFile = new(ELeave)TBuf16<KSmMaxTitleLength>;

	//僙僢僩偝傟偨僨乕僞挿偵僐僺乕愭偺椞堟傕挷惍偡傞
	iReqFile->SetLength(leng);

	//梫媮偝傟偨僼傽僀儖柤傪僐僺乕偡傞
	iRMessage.ReadL(KSmbMusicAPSyncEngineMsgIn2,*iReqFile);

	//MW亅傾僾儕娫偱Index偵僘儗偑偁傞偺偱曗惓偡傞
	iReqPkg->iData.iGetImage.iGetImageInfo.iIndex++;
	}

/**
 *  偙偺僒乕價僗偺廔椆乮張棟傪廔椆偡傞帪偵偼昁偢僐乕儖偡傞偙偲乯
 * @param [in]	aResult	張棟寢壥
 * @return		側偟
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageFile::CompleteThisService(TInt aResult)
	{
	//墳摎儊僢僙乕僕傪敪峴偡傞
	MessageComplete(aResult);

	//埨掕忬懺偵栠偡
	iState = EIdleState;

	//張棟偼廔椆
	return ESmbMusicAPSyncServerContetnsServiceStateEnd;
	}

/**
 *  嬋傾僀僥儉偐傜夋憸僼傽僀儖傪庢摼偡傞乮惗惉偡傞乯
 * @param [in]	側偟
 * @return		側偟
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageFile::StartGetImageL()
	{

	//嬋傾僀僥儉偺庢摼
	iLibItem = iLibImteArray->GetMusicItemL(0);
	//嬋偵娷傑傟傞夋憸傪庢摼偡傞
	if(NULL == iLibItem)
		{
		//偲傝偁偊偢僄儔乕傪捠抦偟傑偡
		CompleteThisService(KErrArgument);
		DeleteObject();
		//僄儔乕偱廔椆偟傑偡
		return ESmbMusicAPSyncServerContetnsServiceStateErr;
		}

	TInt exType(iReqPkg->iData.iGetImage.iExType);
	TInt res = iFunc.CreateImageFile(*iLibItem, iReqPkg->iData.iGetImage.iGetImageInfo, *iReqFile, exType, iStatus);
	if(KErrNone != res)
		{
		//巜掕偝傟偨儕僗僩偑懚嵼偟側偄帠偼側偄偺偱
		//Panic偱傕偟傑偟傚偆偐両両
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageFile| EMusicAPSyncServerLocationNumber02;
		_LIT(KContentsServiceGetImageFile02, "SyncServerContentsServiceGetImageFile::StartServiceL Can't Create File");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageFile02);

		//偲傝偁偊偢僄儔乕傪捠抦偟傑偡
		CompleteThisService(res);
		DeleteObject();
		//僄儔乕偱廔椆偟傑偡
		return ESmbMusicAPSyncServerContetnsServiceStateErr;
		}

	//AO傪傾僋僥傿僽偡傞
	Start();
	iState = EGetImageFileState;
	//張棟傪宲懕偡傞
	return ESmbMusicAPSyncServerContetnsServiceStateContinue;
	}

/**
 *  嬋傾僀僥儉偐傜夋憸僼傽僀儖傪惗惉偟偨屻偺張棟
 * @param [in]	側偟
 * @return		張棟寢壥
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageFile::CompleteGetImage(TInt  /*aResult */)
	{
	//夋憸僼傽僀儖傪娗棟僐儞億乕僱儞僩偵搊榐偡傞
//	CSmbMusicAPSyncServerContentsImageDataManager& imageData = iManagers.ImageDataManager();
	//幚嵺偼妅娭悢側偺偱Leave偟傑偣傫
//	imageData.SetImageL(iReqPkg->iData.iGetImage.iGetImageInfo, *iReqFile);

	//惗惉偟偨僆僽僕僃僋僩偺嶍彍
	DeleteObject();

	//張棟傪廔椆偡傞
	return 	CompleteThisService(KErrNone);
	}

/**
 *  傾僀僥儉惗惉傪拞巭偡傞
 * @param [in]	側偟
 * @return		張棟寢壥
 */
void CSmbMusicAPSyncServerContentsServiceGetImageFile::CancelCreateItem()
	{
	//傾僀僥儉惗惉傪僉儍儞僙儖偡傞
	iList->CancelCreateNewItem();
	}

/**
 *  夋憸庢摼傪拞巭偡傞
 * @param [in]	側偟
 * @return		張棟寢壥
 */
void CSmbMusicAPSyncServerContentsServiceGetImageFile::CancelGetImage()
	{
	//夋憸偺庢摼傪僉儍儞僙儖偡傞
	iFunc.CancelGetImageFile();

	//堦墳僼傽僀儖傪嶍彍偟傑偡
	//僼傽僀儖僒乕僶偲僙僢僔儑儞傪奐偔
	RFs fs;
	fs.Connect();
	//夋憸僼傽僀儖傪嶍彍偡傞
	fs.Delete(*iReqFile);
	//僼傽僀儖僒乕僶偲偺僙僢僔儑儞傪暵偠傞
	fs.Close();
	}

/**
 *  強桳偟偰偄傞傾僀僥儉傪嶍彍偡傞
 * @param[in]	側偟
 * @return		側偟
 **/
void CSmbMusicAPSyncServerContentsServiceGetImageFile::DeleteObject()
	{
	delete iReqPkg;
	iReqPkg = NULL;
	delete iReqTPckg;
	iReqTPckg = NULL;
	delete iReqFile;
	iReqFile = NULL;
	delete iLibImteArray;
	iLibImteArray = NULL;
	delete iLibItem;
	iLibItem = NULL;
	}


// end of SmbMusicAPSyncServerContentsServiceGetImageFile.cpp

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

⌨️ 快捷键说明

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