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

📄 smbmusicapsyncservercontentsservicegetimagetypeinfo.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPSyncServerContentsServiceGetImageTypeInfo.cpp
//
// Description:
//  巜掕庬暿偺夋憸忣曬庢摼梫媮僒乕價僗
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2007/03/27	|K3悪杮		| 怴婯嶌惉
//2007/06/23	|K3悪杮		| AAA夋憸懳墳


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETIMAGETYPEINFO_H__
#include "SmbMusicAPSyncServerContentsServiceGetImageTypeInfo.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSSERVICEGETIMAGETYPEINFO_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 __SMBMUSICAPSYNCSERVERMODEL_H__
#include "SmbMusicAPSyncServerModel.h"
#endif	//  __SMBMUSICAPSYNCSERVERMODEL_H__

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

#ifndef	__SMBMUSICAPSYNCSERVERCONVERTER_H__
#include "SmbMusicAPSyncServerConverter.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONVERTER_H__


USING_NAMESPACE_SEMCJ

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


/**
 *  僨僗僩儔僋僞
 **/
CSmbMusicAPSyncServerContentsServiceGetImageTypeInfo::~CSmbMusicAPSyncServerContentsServiceGetImageTypeInfo()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber00;
	_LIT(KServiceGetImageTypeInfoDestruct01, "SyncServerContentsServiceGetImageTypeInfo::~Destruct()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServiceGetImageTypeInfoDestruct01);
#endif

	delete iItemArray;

	delete iSongItem;

	iImageTypeInfo.iImageInfo.Close();
	}


/**
 *  僒乕價僗偺奐巒梫媮
 *
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageTypeInfo::StartServiceL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber01;
	_LIT(KServiceGetImageTypeInfoStartServiceL01, "SyncServerContentsServiceGetImageTypeInfo::StartServiceL Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageTypeInfoStartServiceL01);
#endif
	//  RMessage偐傜僷儔儊乕僞撉崬
	if (LoadParamL() == EFalse)
		{	//  摨婜僄儞僕儞偐傜偺儊僢僙乕僕偑晄惓偩偭偨
		MessageComplete(KErrArgument);
		return ESmbMusicAPSyncServerContetnsServiceStateErr;
		}

	//  夋憸忣曬儅僱乕僕儍撪偺僉儍僢僔儏偺桳柍傪僠僃僢僋偡傞
	TSmbMusicAPSyncEngineImageTypeInfo imageTypeInfo;
	if (iManagers.ImageDataManager().GetImageTypeInfo(iItemIndex, iImageType, iExType, imageTypeInfo) != EFalse)
		{	//  僉儍僢僔儏撪偵崌抳偡傞僨乕僞偑尒偮偐偭偨
		TSmbMusicAPSyncServerContentsServiceState retState(ESmbMusicAPSyncServerContetnsServiceStateEnd);
		TInt result = WriteToMessage(imageTypeInfo);	//  儊僢僙乕僕偵僨乕僞傪彂偒弌偡
		if (result != KErrNone)
			{	//  儊僢僙乕僕偺彂偒弌偟偱僄儔乕偑敪惗
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber02;
			_LIT(KServiceGetImageTypeInfoStartServiceL02, "SyncServerContentsServiceGetImageTypeInfo::StartServiceL WriteToMessage Error:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoStartServiceL02, result);

			retState = ESmbMusicAPSyncServerContetnsServiceStateErr;
			}
		MessageComplete(result);

		return retState;
		}

	//  僉儍僢僔儏撪偵崌抳偡傞僨乕僞偑尒偮偐傜側偐偭偨応崌
	//  MW偐傜庢摼偡傞捠忢僔乕働儞僗傪幚峴偡傞
	if (iItemArray == NULL)
		{  //  儕僗僩攝楍偑惗惉偝傟偰偄側偄応崌
		//  儕僗僩傾僀僥儉庢摼梡儕僗僩攝楍惗惉
		iItemArray = CSmbMusicMWLibItemArray::NewL(1);	//  1嬋暘
		}

	//  僾儗僀儕僗僩堦棗儕僗僩庢摼
	iItemList = iScreenData.GetList(iItemIndex.iListHandle);
	if (iItemList == NULL)
		{	//  儕僗僩偺庢摼偵幐攕
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber02;
		_LIT(KServiceGetImageTypeInfoStartServiceL02, "SyncServerContentsServiceGetImageTypeInfo::StartServiceL GetList Error");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoStartServiceL02);

		MessageComplete(KErrNotFound);
		return ESmbMusicAPSyncServerContetnsServiceStateErr;
		}

	//  傾僀僥儉儕僗僩偺弶婜壔
	iItemArray -> Reset();

	//  夋憸忣曬庢摼懳徾嬋傾僀僥儉庢摼
	TInt retState(KErrNone);
	retState = iItemList -> CreateNewItem(*iItemArray, iItemIndex.iIndex, 1, iStatus);
	if (retState != KErrNone)
		{
		logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber03;
		_LIT(KServiceGetImageTypeInfoStartServiceL03, "SyncServerContentsServiceGetImageTypeInfo::StartServiceL CreateNewItem Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetImageTypeInfoStartServiceL03, retState);

		MessageComplete(retState);
		return ESmbMusicAPSyncServerContetnsServiceStateErr;
		}

	//  傾僀僥儉庢摼懸偪忬懺傊
	iServiceState = EContentsServiceGetImageTypeInfoStateGetSongItem;
	CSmbMusicAPSyncServerContentsServiceBase::Start();

#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber04;
	_LIT(KServiceGetImageTypeInfoStartServiceL04, "SyncServerContentsServiceGetImageTypeInfo::StartServiceL End");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KServiceGetImageTypeInfoStartServiceL04);
#endif

	return ESmbMusicAPSyncServerContetnsServiceStateContinue;
	}


/**
 *  僒乕價僗僄儔乕捠抦
 *
 *  @param[in]	aError	僄儔乕僐乕僪
 *
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageTypeInfo::ServiceErr(TInt aError)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber05;
	_LIT(KServiceGetImageTypeInfoServiceErr01, "SyncServerContentsServiceGetImageTypeInfo::ServiceErr(%d):%d");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServiceGetImageTypeInfoServiceErr01, aError, iServiceState);
#endif

	if (iItemArray != NULL)
		{
		//  傾僀僥儉儕僗僩偺弶婜壔
		iItemArray -> Reset();
		}

	MessageComplete(aError);
	iServiceState = EContentsServiceGetImageTypeInfoStateIdle;	//  僒乕價僗忬懺傪張棟柍偟忬懺傊

	return ESmbMusicAPSyncServerContetnsServiceStateErr;
	}


/**
 *  僒乕價僗僉儍儞僙儖捠抦
 **/
void CSmbMusicAPSyncServerContentsServiceGetImageTypeInfo::CancelService()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber06;
	_LIT(KServiceGetImageTypeInfoCancelService01, "SyncServerContentsServiceGetImageTypeInfo::CancelService(%d)");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageTypeInfoCancelService01, iServiceState);
#endif
	switch(iServiceState)
		{
		case EContentsServiceGetImageTypeInfoStateGetSongItem:	//  懳徾嬋傾僀僥儉庢摼拞
			ASSERT(iItemList != NULL);
			//  懳徾嬋傾僀僥儉庢摼偺僉儍儞僙儖
			iItemList -> CancelCreateNewItem();
			break;
		case EContentsServiceGetImageTypeInfoStateGetImageInfo:	//  巜掕庬暿夋憸忣曬庢摼拞
			ASSERT(iSongItem != NULL);
			//  巜掕庬暿夋憸忣曬庢摼偺僉儍儞僙儖
			iFunc.CancelGetImageTypeInfo();
			break;
		case EContentsServiceGetImageTypeInfoStateIdle:			//  張棟柍偟
			break;
		default:
			{
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber07;
			_LIT(KServiceGetImageTypeInfoCancelService02, "SyncServerContentsServiceGetImageTypeInfo::CancelService illegal default-route:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServiceGetImageTypeInfoCancelService02, iServiceState);

			ASSERT(EFalse);
			}
			break;
		}

	CSmbMusicAPSyncServerContentsServiceBase::Cancel();

	MessageComplete(KErrCancel);
	iServiceState = EContentsServiceGetImageTypeInfoStateIdle;		//  僒乕價僗忬懺傪枹幚峴忬懺傊
	}


/**
 *  僒乕價僗宲懕
 *
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceGetImageTypeInfo::ContinueServiceL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetImageTypeInfo | EMusicAPSyncServerLocationNumber08;
	_LIT(KServiceGetImageTypeInfoContinueServiceL01, "SyncServerContentsServiceGetImageTypeInfo::ContinueServiceL()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetImageTypeInfoContinueServiceL01);
#endif
	TSmbMusicAPSyncServerContentsServiceState retState(ESmbMusicAPSyncServerContetnsServiceStateEnd);

	switch(iServiceState)
		{
		case EContentsServiceGetImageTypeInfoStateGetSongItem:	//  懳徾嬋傾僀僥儉庢摼拞
			{
			TInt result = GetImageTypeInfo();	//  巜掕庬暿夋憸忣曬庢摼
			if (result == KErrNone)
				{
				iServiceState = EContentsServiceGetImageTypeInfoStateGetImageInfo;	//  巜掕庬暿夋憸忣曬庢摼拞忬懺傊

				CSmbMusicAPSyncServerContentsServiceBase::Start();

				retState = ESmbMusicAPSyncServerContetnsServiceStateContinue;
				}
			else
				{	//  巜掕庬暿夋憸忣曬庢摼偱僄儔乕偑敪惗
				MessageComplete(result);

				iServiceState = EContentsServiceGetImageTypeInfoStateIdle;	//  僒乕價僗忬懺傪張棟柍偟忬懺傊

				retState = ESmbMusicAPSyncServerContetnsServiceStateErr;
				}
			}
			break;
		case EContentsServiceGetImageTypeInfoStateGetImageInfo:	//  巜掕庬暿夋憸忣曬庢摼拞
			{
			TInt result = CompleteGetImageTypeInfo();	//  巜掕庬暿夋憸忣曬傪愝掕
			if (result != KErrNone)
				{
				retState = ESmbMusicAPSyncServerContetnsServiceStateErr;
				}
			else

⌨️ 快捷键说明

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