📄 smbmusicapsyncservercontentsservicegetimageinfo.cpp
字号:
/* 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 + -