smbmusicapmainplayerfilterprocesscommitorderitems.cpp
来自「symbian」· C++ 代码 · 共 226 行
CPP
226 行
/* Copyright (C) 2005-2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerFilterProcessCommitOrderItems.cpp
//
// Description:
// 儈儏乕僕僢僋儊僀儞僾儗僀儎
// 傾僀僥儉忣曬庢摼張棟僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//---------------------------------------------------------------------------
//2006/08/14 |SDNA壀嶳 |怴婯嶌惉
#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"
#include "SmbMusicAPMainPlayerFilterProcessCommitOrderItems.h"
USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN
/**
僐儞僗僩儔僋僞
* @param[in] aObserver 僆僽僓乕僶偺億僀儞僞
* @param[in] aSyncServerController 摨婜僒乕僶惂屼偺嶲徠
* @return 側偟
*/
CSmbMusicAPMainPlayerFilterProcessCommitOrderItems::CSmbMusicAPMainPlayerFilterProcessCommitOrderItems(
MSmbMusicAPMainPlayerFilterProcessObserver& aObserver,
CSmbMusicAPMainPlayerFilterSyncServerController& aSyncServerController)
:CSmbMusicAPMainPlayerFilterProcess(aObserver)
, iEvent(EFilterProcessCommitOrderItemsEventStart)
, iState(EFilterProcessCommitOrderItemsStateIdle)
, iSyncServer(aSyncServerController)
{
}
/**
僨僗僩儔僋僞
* @param 側偟
* @return 側偟
*/
CSmbMusicAPMainPlayerFilterProcessCommitOrderItems::~CSmbMusicAPMainPlayerFilterProcessCommitOrderItems()
{
if(EFilterProcessCommitOrderItemsStateOrder == iState)
{
iSyncServer.CancelRequest(iRequestId, EFalse);
}
}
/**
* 僷儔儊乕僞愝掕
* @param[in] aAllItem 慡審/巜掕僼儔僌
* @param[in] aListHandle 儕僗僩僴儞僪儖
* @param[in] aIndexArray 僀儞僨僢僋僗攝楍
*/
TBool CSmbMusicAPMainPlayerFilterProcessCommitOrderItems::SetParam(TInt aListHandle)
{
if( EFilterProcessCommitOrderItemsStateIdle == iState ||
EFilterProcessCommitOrderItemsStateWaitStart == iState )
{
iListHandle = aListHandle;
iState = EFilterProcessCommitOrderItemsStateWaitStart;
return ETrue;
}
else
{
return EFalse;
}
}
/**
* 梫媮姰椆
*
* @param[in] aKind 梫媮庬暿
* @param[in] aResult 張棟寢壥
* @param[in] aResponse 墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
*/
void CSmbMusicAPMainPlayerFilterProcessCommitOrderItems::RequestComplete(TSmbMusicAPMainPlayerRequest aKind,
TInt aResult,
MSmbMusicAPMainPlayerFilterSyncServerProcessResponse& /*aResponse*/)
{
if(EEditRequestCommitOrderItems == aKind)
{
if(KErrNone == aResult)
{
iEvent = EFilterProcessCommitOrderItemsEventSyncServerComplete;
}
else
{
iResult = aResult;
iEvent = EFilterProcessCommitOrderItemsEventSyncServerErr;
}
DoSequence();
}
else
{
}
}
/**
* 梫媮僉儍儞僙儖
*
* @param[in] aKind 梫媮庬暿
* @param[in] aResponse 墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
*/
void CSmbMusicAPMainPlayerFilterProcessCommitOrderItems::RequestCancel( TSmbMusicAPMainPlayerRequest aKind,
MSmbMusicAPMainPlayerFilterSyncServerProcessResponse& /*aResponse*/)
{
if(EEditRequestCommitOrderItems == aKind)
{
iEvent = EFilterProcessCommitOrderItemsEventSyncServerCancel;
DoSequence();
}
else
{
}
}
/**
* 僐儅儞僪張棟傪幚峴偡傞
* @param 側偟
* @return 側偟
*/
void CSmbMusicAPMainPlayerFilterProcessCommitOrderItems::DoSequence()
{
switch(iState)
{
case EFilterProcessCommitOrderItemsStateWaitStart: // 張棟奐巒懸偪
{
if(EFilterProcessCommitOrderItemsEventStart == iEvent)
{
TInt result = iSyncServer.CommitOrderItems(iListHandle, EOwnerType_Filter, iRequestId, *this);
if(KErrNone == result)
{
iState = EFilterProcessCommitOrderItemsStateOrder;
}
else
{
iResult = result;
iState = EFilterProcessCommitOrderItemsStateErr;
NextState();
}
}
else
{
}
}
break;
case EFilterProcessCommitOrderItemsStateOrder: // 傾僀僥儉庢摼拞
{
switch(iEvent)
{
case EFilterProcessCommitOrderItemsEventSyncServerComplete:
{
iResult = KErrNone;
iState = EFilterProcessCommitOrderItemsStateEnd;
NextState();
}
break;
case EFilterProcessCommitOrderItemsEventSyncServerCancel:
{
iResult = KErrCancel;
iState = EFilterProcessCommitOrderItemsStateErr;
NextState();
}
break;
case EFilterProcessCommitOrderItemsEventSyncServerErr:
{
iState = EFilterProcessCommitOrderItemsStateErr;
NextState();
}
break;
default:
{
}
break;
}
}
break;
case EFilterProcessCommitOrderItemsStateIdle: // 枹張棟
case EFilterProcessCommitOrderItemsStateEnd: // 張棟廔椆
case EFilterProcessCommitOrderItemsStateErr: // 僄儔乕廔椆
default:
{
}
break;
}
}
/**
* 偡傋偰偺僐儅儞僪幚峴偑廔傢偭偨偐偳偆偐妋擣偡傞
* @param 側偟
* @return 廔椆敾掕(ETrue:姰椆嵪 EFalse丗枹姰椆)
*/
TBool CSmbMusicAPMainPlayerFilterProcessCommitOrderItems::IsSequenceFinished()
{
TBool finish = EFalse;
switch(iState)
{
case EFilterProcessCommitOrderItemsStateEnd:
case EFilterProcessCommitOrderItemsStateErr:
finish = ETrue;
break;
default:
break;
}
return finish;
}
SEMCJ_NAMESPACE_END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?