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