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

📄 smbmusicapsyncservercontentsplordermanager.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPSyncServerContentsPLOrderManager.cpp
//
// Description:
//  僾儗僀儕僗僩偺嬋弴暲傃懼偊張棟傪娗棟偡傞
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/06/07	|K3悪杮		| 怴婯嶌惉
//2006/07/18	|K3悪杮		| Fail-Safe偺偨傔Reset帪偵忬懺傪暲懼枹幚峴傊堏峴
//				|			| 儘僌弌椡廋惓
//2006/07/26	|K3悪杮		| 忬懺慗堏帪偺忬懺敾掕張棟捛壛
//2006/10/20	|K3悪杮		| 僐儊儞僩廋惓


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSPLORDERMANAGER_H__
#include "SmbMusicAPSyncServerContentsPLOrderManager.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSPLORDERMANAGER_H__


#ifndef __E32CMN_H__
#include <e32cmn.h>	//  TRequestStatus
#endif	//  __E32cmn_H__

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


#ifndef __SMBMUSICMWLIBCLIENT_H__
#include <SmbMusicMWLibClient.h>	//  CSmbMusicMWLibPLItem
#endif	//  __SMBMUSICMWLIBCLIENT_H__


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

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSAPPNOTIFYMANAGER_H__
#include "SmbMusicAPSyncServerContentsAppNotifyManager.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSAPPNOTIFYMANAGER_H__


USING_NAMESPACE_SEMCJ


/**
 *  僾儗僀儕僗僩暲懼儅僱乕僕儍惗惉梡僼傽僋僩儕娭悢
 *
 *  @param[in]	aLog	儘僌僒乕僶僙僢僔儑儞偺嶲徠
 *  @param[in]	aModel	摨婜僒乕僶儌僨儖偺嶲徠
 *
 *  @return 惗惉偝傟偨僾儗僀儕僗僩暲懼儅僱乕僕儍僋儔僗偺僆僽僕僃僋僩
 **/
CSmbMusicAPSyncServerContentsPLOrderManager* CSmbMusicAPSyncServerContentsPLOrderManager::NewL(
												DCM_NAMESPACE::RLog& aLog,
												CSmbMusicAPSyncServerModel& aModel
												)
	{
	CSmbMusicAPSyncServerContentsPLOrderManager* self = new(ELeave) CSmbMusicAPSyncServerContentsPLOrderManager(aLog, aModel);
	CleanupStack::PushL(self);
	self -> ConstructL();
	CleanupStack::Pop(); // self
	return self;
	}


/**
 *  僨僗僩儔僋僞
 **/
CSmbMusicAPSyncServerContentsPLOrderManager::~CSmbMusicAPSyncServerContentsPLOrderManager()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsPLOrderManager | EMusicAPSyncServerLocationNumber00;
	_LIT(KPLOrderManagerDestruct01, "SyncServerContentsPLOrderManager::~Destruct()");
	SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelNormal, KPLOrderManagerDestruct01);
#endif

	if (OrderStatus() == ESmbMusicAPSyncServerContentsPLOrderStateOrdering)
		{	//  枩偑堦傑偩暲懼拞偺応崌丄暲懼拞巭傪捠抦偡傞丅
		RollbackOrderItem();
		}
	}


/**
 *  僐儞僗僩儔僋僞
 *
 *  @param[in]	aLog	儘僌僒乕僶僙僢僔儑儞偺嶲徠
 *  @param[in]	aModel	摨婜僒乕僶儌僨儖偺嶲徠
 **/
CSmbMusicAPSyncServerContentsPLOrderManager::CSmbMusicAPSyncServerContentsPLOrderManager(
												DCM_NAMESPACE::RLog& aLog,
												CSmbMusicAPSyncServerModel& aModel
												)
	:iLog(aLog),
	 iModel(aModel),
	 iOrderStatus(ESmbMusicAPSyncServerContentsPLOrderStateIdle)	//  弶婜忬懺愝掕
	{
	}


/**
 *  2nd僐儞僗僩儔僋僞
 **/
void CSmbMusicAPSyncServerContentsPLOrderManager::ConstructL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsPLOrderManager | EMusicAPSyncServerLocationNumber01;
	_LIT(KPLOrderManagerConstructL01, "SyncServerContentsPLOrderManager::ConstructL Start");
	SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelNormal, KPLOrderManagerConstructL01);
#endif

#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	logCode = EMusicAPSyncServerClassNumber_ContentsPLOrderManager | EMusicAPSyncServerLocationNumber02;
	_LIT(KPLOrderManagerConstructL02, "SyncServerContentsPLOrderManager::ConstructL End");
	SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelLowest, KPLOrderManagerConstructL02);
#endif
	}


/**
 *  尰嵼偺暲懼忬懺偺庢摼
 *
 *  @return	尰嵼偺暲懼忬懺
 **/
TSmbMusicAPSyncServerContentsPLOrderStatus CSmbMusicAPSyncServerContentsPLOrderManager::OrderStatus() const
	{
	return iOrderStatus;
	}


/**
 *  暲懼懳徾僾儗僀儕僗僩僴儞僪儖偺庢摼
 *
 *  @return	暲懼懳徾僾儗僀儕僗僩僴儞僪儖
 **/
TInt CSmbMusicAPSyncServerContentsPLOrderManager::GetTargetListHandle() const
	{
	return iListHandle;
	}


/**
 *  曐帩僨乕僞偺弶婜壔
 **/
void CSmbMusicAPSyncServerContentsPLOrderManager::Reset()
	{
	iPLItem = NULL;
	iListHandle = 0;

	//  暲懼枹幚峴忬懺傊
	SetOrderStatus(ESmbMusicAPSyncServerContentsPLOrderStateIdle);
	}


/**
 *  暲懼忬懺偺愝掕
 *
 *  @param[in]	aStatus	慗堏愭偺暲懼忬懺
 **/
void CSmbMusicAPSyncServerContentsPLOrderManager::SetOrderStatus(TSmbMusicAPSyncServerContentsPLOrderStatus aStatus)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsPLOrderManager | EMusicAPSyncServerLocationNumber03;
	_LIT(KPLOrderManagerSetOrderStatus01, "SyncServerContentsPLOrderManager::SetOrderStatus() %d -> %d");
	SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelLow, KPLOrderManagerSetOrderStatus01, iOrderStatus, aStatus);
#endif

	if ((aStatus < ESmbMusicAPSyncServerContentsPLOrderStateIdle) ||
		(aStatus > ESmbMusicAPSyncServerContentsPLOrderStateCommiting))
		{	//  慗堏愭偺忬懺偑堎忢
		//  撪晹偱偺張棟側偺偱儘僌弌椡屻Panic
		TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsPLOrderManager | EMusicAPSyncServerLocationNumber04;
		_LIT(KPLOrderManagerSetOrderStatus02, "SyncServerContentsPLOrderManager::SetOrderStatus() illegal Status:%d");
		SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelHighest, KPLOrderManagerSetOrderStatus02, aStatus);

		ASSERT(EFalse);
		}

	if (iOrderStatus == aStatus)
		{
		return;
		}

	iOrderStatus = aStatus;
	}


/**
 *  僾儗僀儕僗僩嬋弴曄峏奐巒
 *
 *  @param[in,out]	aPLItem	暲懼懳徾偲側傞僾儗僀儕僗僩傾僀僥儉
 *
 *	@return	張棟寢壥(KErrNone:惓忢廔椆丄KErrNotSupported:枹僒億乕僩丄KErrInUse:婛偵暲懼拞丄System-wide僄儔乕僐乕僪)
 **/
TInt CSmbMusicAPSyncServerContentsPLOrderManager::PrepareOrderItem(TInt aListHandle, CSmbMusicMWLibPLItem* aPLItem)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsPLOrderManager | EMusicAPSyncServerLocationNumber05;
	_LIT(KPLOrderManagerPrepareOrderItem01, "SyncServerContentsPLOrderManager::PrepareOrderItem(Handle:0x%08x,aPLItem:0x%08x)");
	SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelLow, KPLOrderManagerPrepareOrderItem01, aListHandle, aPLItem);
#endif

	TInt retState(KErrNone);

	if ((OrderStatus() != ESmbMusicAPSyncServerContentsPLOrderStateIdle) ||
		(iPLItem != NULL))
		{	//  婛偵僾儗僀儕僗僩暲懼偑峴傢傟偰偄偨応崌
		return KErrInUse;
		}

	iPLItem = aPLItem;

	if (iPLItem == NULL)
		{	//  僾儗僀儕僗僩傾僀僥儉偑僙僢僩偝傟偰偄側偄応崌
		return KErrNotReady;
		}

	iListHandle = aListHandle;

#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	logCode = EMusicAPSyncServerClassNumber_ContentsPLOrderManager | EMusicAPSyncServerLocationNumber06;
	_LIT(KPLOrderManagerPrepareOrderItem02, "SyncServerContentsPLOrderManager::PrepareOrderItem Handle:0x%08x");
	SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelLow, KPLOrderManagerPrepareOrderItem02, aPLItem -> Handle());
#endif

	retState = iPLItem -> PrepareOrderItem();
	if (retState != KErrNone)
		{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsPLOrderManager | EMusicAPSyncServerLocationNumber07;
		_LIT(KPLOrderManagerPrepareOrderItem03, "SyncServerContentsPLOrderManager::PrepareOrderItem Error:%d");
		SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelNormal, KPLOrderManagerPrepareOrderItem03, retState);
#endif
		Reset();
		}
	else
		{	//  僾儗僀儕僗僩嬋弴曄峏梫媮偑惉岟
		//  暲懼拞忬懺傊
		SetOrderStatus(ESmbMusicAPSyncServerContentsPLOrderStateOrdering);
		}

	return retState;
	}


/**
 *  僾儗僀儕僗僩嬋弴曄峏
 *
 *  @param[in]	aCurrentIndex	懳徾傾僀僥儉偺尰嵼偺Index斣崋
 *  @param[in]	aNewIndex		堏摦屻偺index斣崋
 *
 *	@return	張棟寢壥(KErrNone:惓忢廔椆丄KErrNotSupported:枹僒億乕僩丄KErrNotReady:暲懼拞偱側偄丄System-wide僄儔乕僐乕僪)
 **/
TInt CSmbMusicAPSyncServerContentsPLOrderManager::OrderItem(TInt aCurrentIndex, TInt aNewIndex)

⌨️ 快捷键说明

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