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

📄 smbmusicapsyncservercontentsservicebase.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPSyncServerContentsServiceBase.cpp
//
// Description:
//  傾僀僥儉嶍彍梫媮僒乕價僗
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/06/11	|娵壀		| 怴婯嶌惉
//2006/07/06	|K3悪杮		| 僨僗僩儔僋僞偵Fail-Safe捛壛
//				|			| RunError偵偰僒乕價僗廔椆張棟捛壛
//				|			| 儘僌弌椡廋惓
//2006/07/25	|K3悪杮		| 儘僌偵儊僢僙乕僕Function傪弌椡偡傞傛偆捛壛
//2006/09/29	|K3悪杮		| [iKeeper(TRK):10587] 僉儍儞僙儖弴偺僨僢僪儘僢僋栤戣懳張
//2006/10/20	|K3悪杮		| 僐儊儞僩廋惓
//----PTX824----+-----------+----------------------------------------------
//2007/08/10	|K3悪杮		| [D_82400004466][D_82400004710] 僉儍儞僙儖晄壜側僒乕價僗偵懳墳


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEBASE_H__
#include "SmbMusicAPSyncServerContentsServiceBase.h"
#endif

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


#ifndef __SMBMUSICAPSYNCSERVERDEF_H__
#include "SmbMusicAPSyncServerDef.h"
#endif	//  __SMBMUSICAPSYNCSERVERDEF_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSASYNCOBSERVER_H__
#include "SmbMusicAPSyncServerContentsAsyncObserver.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSASYNCOBSERVER_H__

#ifndef	__SMBMUSICAPSYNCSERVERUTIL_H__
#include "SmbMusicAPSyncServerUtil.h"
#endif	//  __SMBMUSICAPSYNCSERVERUTIL_H__


USING_NAMESPACE_SEMCJ

/**
 *  僐儞僗僩儔僋僞
 *
 *  @param[in]	aRlog				儘僌僒乕僶
 *  @param[in]	aModel				儌僨儖
 *  @param[in]	aFunc				僼傽儞僋僔儑儞
 *  @param[in]	aMgrIf				儅僱乕僕儍IF
 *  @param[in]	aScreenData			僗僋儕乕儞僩儗乕僗儅僱乕僕儍
 *  @param[in]	aObserver			旕摨婜僆僽僓乕僶
 *  @param[in]	aRMessage			僋儔僀傾儞僩偐傜偺儊僢僙乕僕
 *  @param[in]	aComplete			儊僢僙乕僕偺姰椆幚峴僼儔僌(僨僼僅儖僩=EFalse:儊僢僙乕僕枹姰椆)
 **/
CSmbMusicAPSyncServerContentsServiceBase::CSmbMusicAPSyncServerContentsServiceBase(
			DCM_NAMESPACE::RLog& aRlog,
			CSmbMusicAPSyncServerModel& aModel,
			MSmbMusicAPSyncServerContentsAsyncObserver& aObserver,
			CSmbMusicAPSyncServerContentsFunc& aFunc,
			MSmbMusicAPSyncServerContentsManagerInterface& aManagerInterface,
			CSmbMusicAPSyncServerContentsScreenTraceManager& aScreenData,
			const RMessage2& aRMessage,
			TInt aComplete
			)
	:CActive(CActive::EPriorityStandard),
	 iRLog(aRlog),
	 iModel(aModel),
	 iObserver(aObserver),
	 iFunc(aFunc),
	 iManagers(aManagerInterface),
	 iScreenData(aScreenData),
	 iRMessage(aRMessage),
	 iComplete(aComplete)
	{
	CActiveScheduler::Add(this);
	}


/**
 *  僨僗僩儔僋僞
 **/
CSmbMusicAPSyncServerContentsServiceBase::~CSmbMusicAPSyncServerContentsServiceBase()
	{
	CActive::Cancel();
	//  Fail-Safe丄捠忢偼偙偙埲慜偵RMessagePtr2::Complete()偝傟偰偄傞偼偢
	MessageComplete(KErrCancel);
	}


/**
 *  搉偝傟偨僉儍儞僙儖梫媮偑帺僒乕價僗偵懳偡傞傕偺偐敾掕
 *
 *  @param[in]	aServiceType	栤崌偣僒乕價僗(僉儍儞僙儖宯)
 *
 *  @return	敾掕寢壥(僨僼僅儖僩=EFalse:懳徾偼帺僒乕價僗偱側偄丄ETrue:懳徾偑帺僒乕價僗)
 */
TBool CSmbMusicAPSyncServerContentsServiceBase::CheckCancel(TSmbMusicAPSyncServerFunction /*aServiceType*/)
	{
	return EFalse;	//  僨僼僅儖僩幚憰偼EFalse偱曉偟傑偡丅
	}


/**
 *  枹幚峴忬懺偱偺僒乕價僗僉儍儞僙儖張棟
 **/
void CSmbMusicAPSyncServerContentsServiceBase::CancelBeforeStart()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber00;
	_LIT(KServiceBaseCancelBeforeStart01, "SyncServerContentsContentsServiceBase::CancelBeforeStart()[0x%08x]");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceBaseCancelBeforeStart01, iRMessage.Function());
#endif

	MessageComplete(KErrCancel);
	}


/**
 *  僒乕價僗偺宲懕
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceBase::ContinueServiceL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber01;
	_LIT(KServiceBaseContinueServiceL01, "SyncServerContentsContentsServiceBase::ContinueServiceL()[0x%08x]");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceBaseContinueServiceL01, iRMessage.Function());
#endif

	//  僨僼僅儖僩偼張棟廔椆傪曉偡丅
	return ESmbMusicAPSyncServerContetnsServiceStateEnd;	//  張棟廔椆
	}


/**
 *  僒乕價僗偺撪晹僐儅儞僪愝掕
 **/
void CSmbMusicAPSyncServerContentsServiceBase::SetCommand(TSmbMusicAPSyncServerInternalCommandPkg& /*aCommand*/)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber02;
	_LIT(KServiceBaseSetCommand01, "SyncServerContentsContentsServiceBase::SetCommand()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceBaseSetCommand01);
#endif
	}


/**
 *  僒乕價僗偺僉儍儞僙儖
 **/
void CSmbMusicAPSyncServerContentsServiceBase::CancelService()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber03;
	_LIT(KServiceBaseCancelService01, "SyncServerContentsContentsServiceBase::CancelService()[0x%08x]");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceBaseCancelService01, iRMessage.Function());
#endif

	MessageComplete(KErrCancel);
	}


/**
 *  僒乕價僗僄儔乕
 *
 *  @param[in]	aError	僄儔乕僐乕僪
 *
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServiceBase::ServiceErr(TInt aError)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber04;
	_LIT(KServiceBaseServiceErr01, "SyncServerContentsServiceBase::ServiceErr(%d)[0x%08x]");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceBaseServiceErr01, aError, iRMessage.Function());
#endif

	return ESmbMusicAPSyncServerContetnsServiceStateErr;
	}


/**
 *  AO梫媮姰椆
 */
void CSmbMusicAPSyncServerContentsServiceBase::RunL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber05;
	_LIT(KServiceBaseRunL01, "SyncServerContentsContentsServiceBase::RunL()[0x%08x] iStatus = %d");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServiceBaseRunL01, iRMessage.Function(), iStatus.Int());
#endif

	//  宲彸愭偺娭悢傪僐乕儖偡傞
	TSmbMusicAPSyncServerContentsServiceState result(ESmbMusicAPSyncServerContetnsServiceStateEnd);
	if (iStatus == KErrNone)
		{	//  旕摨婜張棟惉岟帪
		result = ContinueServiceL();
		}
	else
		{	//  旕摨婜張棟僄儔乕帪
		result = ServiceErr(iStatus.Int());
		}

	//  張棟寢壥傪敾抐偡傞
	switch(result)
		{
		//梫媮張棟偺姰椆傪捠抦偡傞
		case ESmbMusicAPSyncServerContetnsServiceStateEnd:
			iObserver.ServiceComplete();
			break;

		//張棟傪宲懕
		case ESmbMusicAPSyncServerContetnsServiceStateContinue:
			//摿偵張棟偼偁傝傑偣傫
			break;

		//僄儔乕傪捠抦偡傞
		case ESmbMusicAPSyncServerContetnsServiceStateErr:
			iObserver.ServiceCompleteErr();
			break;

		default:
			{
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber06;
			_LIT(KServiceBaseRunL01, "SyncServerContentsContentsServiceBase::RunL()[0x%08x] illegal default-route:%d");
			SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServiceBaseRunL01, iRMessage.Function(), result);
			ASSERT(EFalse);
			}
			break;
		}
	}


/**
 *  AO梫媮僉儍儞僙儖幚懱
 */
void CSmbMusicAPSyncServerContentsServiceBase::DoCancel()
	{
	//  嬻幚憰
	}


/**
 *  RunL偺Leave僩儔僢僾
 *
 *  @param[in]	aError	僄儔乕僐乕僪
 **/
TInt CSmbMusicAPSyncServerContentsServiceBase::RunError(TInt aError)
	{
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber07;
	_LIT(KServiceBaseRunError01, "SyncServerContentsContentsServiceBase::RunError(%d)[0x%08x]");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServiceBaseRunError01, aError, iRMessage.Function());

	//  RunError偼RunL偵偰Leave偑敪惗偟偨応崌偺傒偵屇偽傟傞
	//  偙偺応崌丄僋儔僀傾儞僩偐傜偺儊僢僙乕僕偵僄儔乕抣傪搉偟丄
	//  Service偺張棟偑僄儔乕偵偰廔椆偟偨偲偟僒乕僶偲偟偰偼張棟傪宲懕偝偣傞丅
	MessageComplete(aError);
	iObserver.ServiceCompleteErr();

	return KErrNone;
	}


/**
 *  AO梫媮懸偪奐巒
 */
void CSmbMusicAPSyncServerContentsServiceBase::Start()
	{
	if(IsActive() != EFalse)
		{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber08;
		_LIT(KServiceBaseStart01, "SyncServerContentsContentsServiceBase::Start[0x%08x] AO is actived");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceBaseStart01, iRMessage.Function());
#endif

		Cancel();	//  梫媮傪偄偭偨傫僉儍儞僙儖
		}
//	iStatus = KRequestPending;	//  忬懺傪梫媮姰椆懸偪傊
	SetActive();
	}


/**
 *  僋儔僀傾儞僩偐傜偺儊僢僙乕僕傪姰椆偝偣傞
 *
 *  @param[in]	aResult	姰椆棟桼
 */
void CSmbMusicAPSyncServerContentsServiceBase::MessageComplete(TInt aResult)
	{
	//  暋悢夞姰椆傪峴傢側偄傛偆偵僼儔僌偵傛偭偰敾掕
	if(EFalse == iComplete)
		{	//  儊僢僙乕僕枹姰椆偺応崌
		iRMessage.Complete(aResult);
		iComplete = ETrue;
		}
	}


//  ADD-S  [iKeeper(TRK):10587] 僉儍儞僙儖弴偺僨僢僪儘僢僋栤戣懳張
/**
 *  搉偝傟偨僉儍儞僙儖梫媮偑帺僒乕價僗偵懳偡傞傕偺偐敾掕
 *
 *  @param[in]	aRequestId	梫媮ID
 *  @param[in]	aSession	梫媮偝傟偨僙僢僔儑儞敾掕梡
 *
 *  @return	敾掕寢壥(ETrue:懳徾偑帺僒乕價僗丄EFalse:懳徾偼帺僒乕價僗偱側偄)
 **/
TBool CSmbMusicAPSyncServerContentsServiceBase::CheckCancel(TInt aRequestId, CSession2* aSession)
	{
	if (iComplete != EFalse)
		{	//  婛偵姰椆嵪傒丄傑偨偼僐儅儞僪宯僒乕價僗偺応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber10;
		_LIT(KServiceBaseCheckCancel01, "SyncServerContentsContentsServiceBase::CheckCancel(0x%04x, 0x%08x) already complete:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KServiceBaseCheckCancel01, aRequestId, aSession, iComplete);
#endif
		return EFalse;
		}

	CSession2* session(iRMessage.Session());
	TInt reqId(iRMessage.Function() & ESmbMusicAPSyncServerFuncMaskReqestId);
	TBool result(EFalse);

	if (session == aSession)
		{	//  梫媮偝傟偨僙僢僔儑儞偑摨偠
		if (reqId == aRequestId)
			{	//  梫媮ID偑堦抳
			result = ETrue;	//  僉儍儞僙儖懳徾
			}
		}
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceBase | EMusicAPSyncServerLocationNumber11;
	_LIT(KServiceBaseCheckCancel02, "SyncServerContentsContentsServiceBase::CheckCancel[0x%08x](0x%04x, 0x%08x) s:0x%08x = %d");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KServiceBaseCheckCancel02,
							iRMessage.Function(), aRequestId, aSession, session, result);
#endif
	return result;
	}
//  ADD-E  [iKeeper(TRK):10587] 僉儍儞僙儖弴偺僨僢僪儘僢僋栤戣懳張


//  ADD-S  [D_82400004466][D_82400004710] 僉儍儞僙儖晄壜側僒乕價僗偵懳墳
/**
 *  僉儍儞僙儖弌棃側偄僒乕價僗偐偳偆偐偺敾掕
 *
 *  @return	敾掕寢壥(EFalse:僉儍儞僙儖壜擻丄ETrue:僉儍儞僙儖晄壜)
 **/
TBool CSmbMusicAPSyncServerContentsServiceBase::DisableCancelService()
	{
	//  捠忢偺僒乕價僗偼僉儍儞僙儖壜擻.
	return EFalse;
	}
//  ADD-E  [D_82400004466][D_82400004710] 僉儍儞僙儖晄壜側僒乕價僗偵懳墳


// end of SmbMusicAPSyncServerContentsServiceBase.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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