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

📄 smbmusicapsyncservercontentsservicegetimageinfo.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPSyncServerContentsServiceGetImageInfo.cpp
//
// Description:
//  傾僀僥儉嶍彍梫媮僒乕價僗
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/06/11	|娵壀		| 怴婯嶌惉
//2006/08/26	|娵壀		| TRK5393懳墳
//2006/10/20	|K3悪杮		| 僐儊儞僩廋惓丒晄梫僿僢僟偺嶍彍
//2006/10/26	|K3悪杮		| 儘僌儗儀儖廋惓
//----PTX824----+-----------+----------------------------------------------
//2007/06/23	|K3悪杮		| AAA夋憸懳墳


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETIMAGEINFO_H__
#include "SmbMusicAPSyncServerContentsServiceGetImageInfo.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETIMAGEINFO_H__


#ifndef __E32ERR_H__
#include <e32err.h>	//  僄儔乕僐乕僪
#endif	//  __E32ERR_H__


#ifndef __SMBMUSICAPSYNCSERVERDEF_H__
#include <SmbMusicAPSyncServerDef.h>
#endif	//  __SMBMUSICAPSYNCSERVERDEF_H__

#ifndef __SMBMUSICMWLIBCLIENT_H__
#include <SmbMusicMWLibClient.h>	//  CSmbMusicMWLibPLItem
#endif	//  __SMBMUSICMWLIBCLIENT_H__


#ifndef __SMBMUSICAPSYNCSERVERCOMMANDOBSERVER_H__
#include "SmbMusicAPSyncServerCommandObserver.h"
#endif	//  __SMBMUSICAPSYNCSERVERCOMMANDOBSERVER_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__
#include "SmbMusicAPSyncServerContentsImageDataManager.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACEMANAGER_H__
#include "SmbMusicAPSyncServerContentsScreenTraceManager.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACEMANAGER_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSASYNCOBSERVER_H__
#include "SmbMusicAPSyncServerContentsAsyncObserver.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSASYNCOBSERVER_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSLIST_H__
#include "SmbMusicAPSyncServerContentsList.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSLIST_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__
#include "SmbMusicAPSyncServerContentsManagerInterface.h"
#endif	//	__SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__

#ifndef __SMBMUSICAPLIB_H__
#include "SmbMusicAPLib.h"
#endif	//  __SMBMUSICAPLIB_H__

USING_NAMESPACE_SEMCJ


/**
 *  僨僗僩儔僋僞
 **/
CSmbMusicAPSyncServerContentsServiceGetImageInfo::~CSmbMusicAPSyncServerContentsServiceGetImageInfo()
	{

	if (IsActive() != EFalse)
		{
		CancelService();
		}
	// 擮偺偨傔丄僉儍儞僙儖偵偰Complete偡傞
	MessageComplete(KErrCancel);

	//晄梫側僆僽僕僃僋僩傪嶍彍偡傞
	DeleteObject();
	}


/**
 *  僐儞僗僩儔僋僞
 *
 *  @param[in]	aRlog				儘僌僒乕僶
 *  @param[in]	aModel				儌僨儖
 *  @param[in]	aFunc				僼傽儞僋僔儑儞
 *  @param[in]	aMgrIf				儅僱乕僕儍IF
 *  @param[in]	aScreenData			僗僋儕乕儞僩儗乕僗儅僱乕僕儍
 *  @param[in]	aObserver			旕摨婜僆僽僓乕僶
 *  @param[in]	aRMessage			僋儔僀傾儞僩偐傜偺儊僢僙乕僕
 **/
CSmbMusicAPSyncServerContentsServiceGetImageInfo::CSmbMusicAPSyncServerContentsServiceGetImageInfo(
			DCM_NAMESPACE::RLog& aRlog,
			CSmbMusicAPSyncServerModel& aModel,
			MSmbMusicAPSyncServerContentsAsyncObserver& aObserver,
			CSmbMusicAPSyncServerContentsFunc& aFunc,
			MSmbMusicAPSyncServerContentsManagerInterface& aMgrIf,
			CSmbMusicAPSyncServerContentsScreenTraceManager& aScreenData,
			const RMessage2& aRMessage)
			:CSmbMusicAPSyncServerContentsServiceBase(
			aRlog, aModel, aObserver, aFunc, aMgrIf, aScreenData, aRMessage),
			iState(EIdleState)
	{
	}


/**
 *  僒乕價僗偺奐巒梫媮
 * @param [in]	側偟
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 */
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageInfo::StartServiceL()
	{
	if(EIdleState != iState)
		{
		//忬懺偑堎忢偱偡
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber00;
		_LIT(KContentsServiceGetImageInfo00, "SyncServerContentsServiceGetImageInfo::StartServiceL StateErr = %d");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo00, iState);

		//埨掕忬懺偱側偗偽張棟傪嫅斲偡傞
		return CompleteThisService(KErrServerBusy);
		}

	//梫媮儊僢僙乕僕偺撪梕傪儊儞僶曄悢偵僐僺乕偡傞
	ReadParamFromMsgL();

	TSmbMusicAPSyncEngineItemIndex& index = iReqPkg->iData.iGetImageInfo.iSongItem;
	iExType = iReqPkg->iData.iGetImageInfo.iExType;

	//夋憸僼傽僀儖娗棟僐儞億乕僱儞僩偵栤偄崌偣傞
	CSmbMusicAPSyncServerContentsImageDataManager& imageData = iManagers.ImageDataManager();
	TSmbMusicAPSyncEngineImageInfoInSongItem imageInfo;
	TBool res = imageData.GetImageInfo(index, iExType, imageInfo);

	//僒乕價僗張棟傪宲懕偱弶婜壔偡傞
	TSmbMusicAPSyncServerContentsServiceState result = ESmbMusicAPSyncServerContetnsServiceStateContinue;
	if(EFalse != res)
		{
		//梫媮偝傟偨夋憸忣曬偑婛偵惗惉嵪傒偱偁傞
		TInt msgRes = WriteToMsg(imageInfo);
		//梫媮張棟姰椆
		result = CompleteThisService(msgRes);
		}
	else
		{
		//梫媮偝傟偨傾僀僥儉偑強懏偡傞儕僗僩傪庢摼偡傞
		iList = iScreenData.GetList(iReqPkg->iData.iGetImage.iGetImageInfo.iSongItem.iListHandle);
		if(NULL == iList)
			{
			//忬懺偑堎忢偱偡
			TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber01;
			_LIT(KContentsServiceGetImageInfo01, "SyncServerContentsServiceGetImageInfo::StartServiceL NotFoundList");
			SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHigh, KContentsServiceGetImageInfo01);

			//傕偭偰偄傞僆僽僕僃僋僩傪嶍彍偡傞
			DeleteObject();

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

			return ESmbMusicAPSyncServerContetnsServiceStateErr;
			}
		//儕僗僩偵傾僀僥儉偺惗惉傪埶棅偡傞
		iLibImteArray = CSmbMusicMWLibItemArray::NewL(1);
	 	TInt ret = iList->CreateNewItem(*iLibImteArray, index.iIndex, 1, iStatus);
		if(KErrNone != ret)
			{
			//傾僀僥儉偺惗惉偵幐攕
			TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber24;
			_LIT(KContentsServiceGetImageInfo24, "SyncServerContentsServiceGetImageInfo::StartServiceL FailCreateItem = %d");
			SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageInfo24, ret);

			//傕偭偰偄傞僆僽僕僃僋僩傪嶍彍偡傞
			DeleteObject();

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

			return ESmbMusicAPSyncServerContetnsServiceStateErr;
			}
		//ActiveObject傪妶惈壔偡傞
		Start();
		//傾僀僥儉惗惉忬懺偵慗堏
		iState = ECreateItemState;
		}
	return result;
	}


/**
 *  僒乕價僗僄儔乕捠抦
 *
 *  @param[in]	aError	僄儔乕僐乕僪
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageInfo::ServiceErr(TInt aError)
	{

	TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber11;
	_LIT(KContentsServiceGetImageInfo11, "SyncServerContentsServiceGetImageInfo::ServiceErr = %d");
	SmbMusicAPSyncServerLog(iRLog, log, ELogLevelLowest, KContentsServiceGetImageInfo11, aError);

	switch(iState)
		{
	///<傾僀僥儉惗惉忬懺
	case ECreateItemState:
		break;

	///<夋憸庢摼忬懺
	case EGetImageInfoState:
		//夋憸僼傽僀儖庢摼張棟姰椆
		break;

	default:
		break;
		}

	//傕偭偰偄傞僆僽僕僃僋僩傪嶍彍偡傞
	DeleteObject();

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

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

	return ESmbMusicAPSyncServerContetnsServiceStateErr;
	}


/**
 *  僒乕價僗僉儍儞僙儖捠抦
 * @param [in]	側偟
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 */
void CSmbMusicAPSyncServerContentsServiceGetImageInfo::CancelService()
	{
	TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber26;
	_LIT(KContentsServiceGetImageInfo26, "SyncServerContentsServiceGetImageInfo::Start Cancel");
	SmbMusicAPSyncServerLog(iRLog, log, ELogLevelLowest, KContentsServiceGetImageInfo26);

	TInt res = KErrCancel;
	switch(iState)
		{
	///<梫媮側偟忬懺
	case EIdleState:
		//張棟柍偟偱廔椆偡傞
		res = KErrNone;
		break;

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

	///<夋憸僼傽僀儖庢摼忬懺
	case EGetImageInfoState:
		//夋憸僼傽僀儖庢摼張棟姰椆
		CancelGetImageInfo();
		break;

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

	//張棟傪廔椆偡傞
	CompleteThisService(res);

	//晄梫側僆僽僕僃僋僩傪嶍彍偡傞
	DeleteObject();

	Cancel();
	}


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

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

	///<夋憸忣曬庢摼忬懺
	case EGetImageInfoState:
		//夋憸忣曬庢摼張棟姰椆
		retState = CompleteGetImageInfoL(KErrNone);
		break;

	default:
		//婎杮揑偵偙偙偵偔傞帠偼偁傝偊側偄偺偱儘僌傪弌椡偡傞
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageInfo | EMusicAPSyncServerLocationNumber12;
		_LIT(KContentsServiceGetImageInfo12, "SyncServerContentsServiceGetImageInfo::ContinueService = %d");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelLowest, KContentsServiceGetImageInfo12, iState);

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

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

		return ETrue;
		}
	return EFalse;
	}

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

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

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

/**
 *  梫媮儊僢僙乕僕偵張棟寢壥傪彂偒崬傓
 * @param [in]	aImageInfo	夋憸忣曬
 * @return		張棟寢壥
 */
TInt CSmbMusicAPSyncServerContentsServiceGetImageInfo::WriteToMsg(
		TSmbMusicAPSyncEngineImageInfoInSongItem& aImageInfo
		)

⌨️ 快捷键说明

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