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

📄 smbmusicapsyncservercontentsservicegetimagefile.cpp

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


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETIMAGEFILE_H__
#include "SmbMusicAPSyncServerContentsServiceGetImageFile.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETIMAGEFILE_H__


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


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


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSFUNC_H__
#include "SmbMusicAPSyncServerContentsFunc.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSFUNC_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__

USING_NAMESPACE_SEMCJ


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

	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			僋儔僀傾儞僩偐傜偺儊僢僙乕僕
 **/
CSmbMusicAPSyncServerContentsServiceGetImageFile::CSmbMusicAPSyncServerContentsServiceGetImageFile(
			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 CSmbMusicAPSyncServerContentsServiceGetImageFile::StartServiceL()
	{
	if(EIdleState != iState)
		{
		//忬懺偑堎忢偱偡
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageFile| EMusicAPSyncServerLocationNumber04;
		_LIT(KContentsServiceGetImageFile04, "SyncServerContentsServiceGetImageFile::StartServiceL StateErr");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageFile04, iState);

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

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

	//儊僢僙乕僕傪撉傓偲偒偵僠僃僢僋偟偨偗偳丄傕偆堦夞偟傑偡偐丒丒丒乮偙偙偼嶍彍偟偰傕偄偄偐傕乯
	if(	0 == iReqFile->Length() )
		{

		//巜掕偝傟偨儕僗僩偑懚嵼偟側偄帠偼側偄偺偱
		//Panic偱傕偟傑偟傚偆偐両両
		TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageFile| EMusicAPSyncServerLocationNumber00;
		_LIT(KContentsServiceGetImageFile00, "SyncServerContentsServiceGetImageFile::StartServiceL illgal File Name");
		SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageFile00);

		//堷悢偑晄惓側偺偱僄儔乕捠抦偟傑偡
		//偲傝偁偊偢僄儔乕傪捠抦偟傑偡
		CompleteThisService(KErrArgument);

		DeleteObject();

		return ESmbMusicAPSyncServerContetnsServiceStateErr;
		}


	//梫媮僷儔儊乕僞傪僐僺乕偡傞
	TSmbMusicAPSyncEngineGetImageInfo* getImageInfo = &(iReqPkg->iData.iGetImage.iGetImageInfo);

	//夋憸僼傽僀儖娗棟僐儞億乕僱儞僩偵栤偄崌偣傞
	CSmbMusicAPSyncServerContentsImageDataManager& imageData = iManagers.ImageDataManager();
	TBool res = imageData.GetImage(*getImageInfo, *iReqFile);

	//僒乕價僗張棟傪宲懕偱弶婜壔偡傞
	TSmbMusicAPSyncServerContentsServiceState result = ESmbMusicAPSyncServerContetnsServiceStateContinue;
	if(EFalse != res)
		{
		//梫媮偝傟偨夋憸僼傽僀儖傪夋婛偵惗惉嵪傒偱偁傞
		//梫媮張棟姰椆
		result = CompleteThisService(KErrNone);
		DeleteObject();
		}
	else
		{
		//梫媮偝傟偨傾僀僥儉偑強懏偡傞儕僗僩傪庢摼偡傞
		iList = iScreenData.GetList(iReqPkg->iData.iGetImage.iGetImageInfo.iSongItem.iListHandle);
		if(NULL == iList)
			{
			//巜掕偝傟偨儕僗僩偑懚嵼偟側偄帠偼側偄偺偱
			TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageFile| EMusicAPSyncServerLocationNumber01;
			_LIT(KContentsServiceGetImageFile01, "SyncServerContentsServiceGetImageFile::StartServiceL NotFoundList");
//  MODIFY-S  儘僌儗儀儖廋惓
			SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHigh, KContentsServiceGetImageFile01);
//  MODIFY-E  儘僌儗儀儖廋惓

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

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

			return ESmbMusicAPSyncServerContetnsServiceStateErr;
			}
		//儕僗僩偵傾僀僥儉偺惗惉傪埶棅偡傞
		iLibImteArray = CSmbMusicMWLibItemArray::NewL(1);

	 	TInt ret = iList->CreateNewItem(*iLibImteArray, getImageInfo->iSongItem.iIndex ,1 ,iStatus);
		if(KErrNone != ret)
			{
			//傾僀僥儉偺惗惉偵幐攕
			TInt log = EMusicAPSyncServerClassNumber_ContentsServiceGetImageFile| EMusicAPSyncServerLocationNumber06;
			_LIT(KContentsServiceGetImageFile06, "SyncServerContentsServiceGetImageFile::StartServiceL FailCreateItem = %d");
			SmbMusicAPSyncServerLog(iRLog, log, ELogLevelHighest, KContentsServiceGetImageFile06, ret);

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

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

			return ESmbMusicAPSyncServerContetnsServiceStateErr;

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

		}
	return result;
	}


/**
 *  僒乕價僗僄儔乕捠抦
 *
 *  @param[in]	aError	僄儔乕僐乕僪
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageFile::ServiceErr(TInt aError)
	{
	switch(iState)
		{
	///<傾僀僥儉惗惉忬懺
	case ECreateItemState:
//		CancelCreateItem();
		break;

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

	default:
		break;
		}

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

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

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

	return ESmbMusicAPSyncServerContetnsServiceStateErr;
	}


/**
 *  僒乕價僗僉儍儞僙儖捠抦
 * @param [in]	側偟
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 */
void CSmbMusicAPSyncServerContentsServiceGetImageFile::CancelService()
	{
	TInt res = KErrCancel;
	switch(iState)
		{
	///<梫媮側偟忬懺
	case EIdleState:
		//張棟柍偟偱廔椆偡傞
		res = KErrNone;
		break;

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

⌨️ 快捷键说明

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