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

📄 smbmusicapsyncservercontentslist.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSyncServerContentsList.cpp
//
// Description:
//	PTX810 Music傾僾儕 摨婜僒乕僶 僐儞僥儞僣僋儔僗
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰			|撪梕
//--------------+---------------+--------------------------------------
//2006/06/08	|SDNA 壀嶳		|怴婯嶌惉
//2006/10/10	|K3悪杮			| 儘僌廋惓
//----PTX824----+---------------+--------------------------------------
//2007/06/20	|K3悪杮			| PTX824懳墳
//2007/06/29	|K3悪杮			| 婜尷愗傟僒僽僗僋儕僾僔儑儞僌儗乕昞帵懳墳


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSLIST_H__
#include "SmbMusicAPSyncServerContentsList.h"
#endif

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSITEM_H__
#include "SmbMusicAPSyncServerContentsItem.h"
#endif

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

USING_NAMESPACE_SEMCJ

/**
 僐儞僗僩儔僋僞
 * @param [in]	aLog				RLog偺嶲徠
 * @param [in]	aListHandle			儕僗僩僴儞僪儖
 * @param [in]	aListItem			儔僀僽儔儕MW偐傜庢摼偟偨儕僗僩偺億僀儞僞
 * @param [in]	aListType			儕僗僩庬暿乮摨婜僄儞僕儞掕媊乯
 * @param [in]	aSearchListType		専嶕偵偍偗傞儕僗僩庬暿
 * @param [in]	aSearchCondition	専嶕偵偍偗傞忦審
 * @return	側偟
 */
CSmbMusicAPSyncServerContentsList::CSmbMusicAPSyncServerContentsList(DCM_NAMESPACE::RLog&					aLog,
																	 TInt									aListHandle,
																	 CSmbMusicMWLibListItem*				aListItem,
																	 TSmbMusicAPSyncEngineListType			aListType,
																	 TSmbMusicAPSyncEngineRequestListType	aSearchListType,
																	 TSmbMusicAPSyncEngineSearchCondition	aSearchCondition)
	:iLog(aLog),
	 iListHandle(aListHandle),
	 iListItem(aListItem),
	 iListType(aListType),
	 iSearchListType(aSearchListType),
	 iSearchCondition(aSearchCondition)
	{
	}


/**
 僐儞僗僩儔僋僞
 * @param [in]	aLog					RLog偺嶲徠
 * @param [in]	aListHandle				儕僗僩僴儞僪儖
 * @param [in]	aListItem				儔僀僽儔儕MW偐傜庢摼偟偨儕僗僩偺億僀儞僞
 * @param [in]	aListType				儕僗僩庬暿乮摨婜僄儞僕儞掕媊乯
 * @param [in]	aSearchListType			専嶕偵偍偗傞儕僗僩庬暿
 * @param [in]	aListSearchCondition	専嶕偵偍偗傞忦審
 * @return	側偟
 */
CSmbMusicAPSyncServerContentsList::CSmbMusicAPSyncServerContentsList(DCM_NAMESPACE::RLog&						aLog,
																	 TInt										aListHandle,
																	 CSmbMusicMWLibListItem*					aListItem,
																	 TSmbMusicAPSyncEngineListType				aListType,
																	 TSmbMusicAPSyncEngineRequestListType		aSearchListType,
																	 TSmbMusicAPSyncEngineListSearchCondition	aListSearchCondition)
	:iLog(aLog),
	 iListHandle(aListHandle),
	 iListItem(aListItem),
	 iListType(aListType),
	 iSearchListType(aSearchListType),
	 iListSearchCondition(aListSearchCondition)
	{
	}


/**
 僨僗僩儔僋僞
 * @param	側偟
 * @return	側偟
 */
CSmbMusicAPSyncServerContentsList::~CSmbMusicAPSyncServerContentsList()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsList00, "SyncServerContentsList::~CSmbMusicAPSyncServerContentsList()");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber00),
							ELogLevelLowest,
							KContentsList00);
#endif
	delete iListItem;
	iListItem = 0;

	delete iDispString;
	iDispString = 0;

	iConditionArray.Close();

	iItems.ResetAndDestroy();
	iItems.Close();
	}


/**
 儕僗僩庬暿傪庢摼偡傞
 * @param	側偟
 * @return	儕僗僩庬暿乮摨婜僄儞僕儞掕媊乯
 */
TSmbMusicAPSyncEngineListType CSmbMusicAPSyncServerContentsList::GetListType()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsList01, "SyncServerContentsList::GetListType() return:%d");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber01),
							ELogLevelLowest,
							KContentsList01,
							iListType);
#endif
	return iListType;
	}


/**
 傾僀僥儉傪庢摼偡傞
 * @param [in]	aIndex		堦棗撪偱偺僀儞僨僢僋僗
 * @return					傾僀僥儉僋儔僗偺億僀儞僞乮強桳尃傪堏忳偟側偄乯
 */
CSmbMusicAPSyncServerContentsItem* CSmbMusicAPSyncServerContentsList::GetItem(TInt aIndex)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsList02, "SyncServerContentsList::GetItem(aIndex:%d)");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber02),
							ELogLevelLowest,
							KContentsList02,
							aIndex);
#endif

	TInt	arrayIndex = 0;
	TBool	cache = SearchItem(aIndex, arrayIndex);

	CSmbMusicAPSyncServerContentsItem* item = 0;
	if(EFalse != cache)
		{
		item = iItems[arrayIndex];
		}

	return item;
	}


/**
 *  傾僀僥儉傪曐懚偡傞
 *  @param[in]	aIndex			堦棗偱偺僀儞僨僢僋僗
 *  @param[in]	aDispString		昞帵梡暥帤楍
 *  @param[in]	aAvailable		傾僀僥儉偺棙梡壜斲忣曬(僨僼僅儖僩:棙梡壜)
 *  @param[in]	aLimitatioin	嵞惗惂尷忣曬(僨僼僅儖僩:嵞惗惂尷側偟)
 **/
void CSmbMusicAPSyncServerContentsList::SetItem(
		TInt aIndex,
		const TDesC& aDispString,
		TInt aAvailable/*=ESmbMusicAPSyncEngineOK*/,
		TSmbMusicAPSyncEngineLimitation aLimitation/*=ESmbMusicAPSyncEngineLimitNone*/
		)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsList03, "SyncServerContentsList::SetItem(aIndex:%d aDispString:%d aAvailable:0x%08x aLimitation:%d)");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber03),
							ELogLevelLowest,
							KContentsList03,
							aIndex,
							aDispString.Length(),
							aAvailable,
							aLimitation);
#endif
	CSmbMusicAPSyncServerContentsItem* item(NULL);
	TRAPD(err, item = CSmbMusicAPSyncServerContentsItem::NewL(iLog, aIndex, aDispString, aAvailable, aLimitation););
	if(KErrNone != err)
		{
		_LIT(KContentsList04, "SyncServerContentsList::SetItem() CSmbMusicAPSyncServerContentsItem::NewL() Leave %d");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber04),
								ELogLevelHighest,
								KContentsList04,
								err);

		ASSERT(EFalse);
		}

	TInt	arrayIndex = 0;
	TBool	result = SearchItem(aIndex, arrayIndex);

	if(EFalse != result)
		{
		// 僉儍僢僔儏偝傟偰偄傞傾僀僥儉傪嶍彍偡傞
		DeleteItem(arrayIndex);
		}

	TInt append = iItems.Append(item);
	if(KErrNone == append)
		{
		//強帩偟偰偄傞傾僀僥儉偺悢偑嵟戝悢傪挻偊偨応崌丄嵟傕屆偄傾僀僥儉傪攋婞偡傞丅
		TInt count = iItems.Count();
		if(GetMaxItemCount() < count)
			{
			// 愭摢偺傾僀僥儉傪嶍彍偡傞
			DeleteItem(0);
			}
		}
	else
		{
		_LIT(KContentsList05, "SyncServerContentsList::SetItem() iItems.Append() Err %d");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber05),
								ELogLevelHigh,
								KContentsList05,
								append);

		delete item;
		item = NULL;
		}
	}


/**
 傾僀僥儉傪惗惉偡傞
 * @param [in]	aArray		儔僀僽儔儕MW偑掕媊偡傞
 * @param [in]	aIndex		惗惉偡傞傾僀僥儉偺愭摢偺僀儞僨僢僋僗
 * @param [in]	aCount		惗惉偡傞傾僀僥儉偺悢
 * @param [in]	aStatus		僗僥乕僞僗
 * @return	儔僀僽儔儕MW偐傜偺栠傝抣
 */
TInt CSmbMusicAPSyncServerContentsList::CreateNewItem(CSmbMusicMWLibItemArray& aArray, TInt aIndex, TInt aCount, TRequestStatus& aStatus)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsList06, "SyncServerContentsList::CreateNewItem()");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber06),
							ELogLevelLowest,
							KContentsList06);
#endif
	TInt result = iListItem->GetItemArraySpecifyingIndex(aIndex, aCount, aArray, aStatus);

	return result;

	}

/**
 専嶕忦審傪庢摼偡傞
 * @param [out]	aConditionArray		専嶕忣曬僋儔僗偺攝楍
 * @return	庢摼偺惉斲
 */
TBool CSmbMusicAPSyncServerContentsList::GetSearchCondition(CArrayFixFlat<TSmbMusicMWLibSearchConditionInfo>& /* aConditionArray */)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsList07, "SyncServerContentsList::GetSearchCondition()");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber07),
							ELogLevelLowest,
							KContentsList07);
#endif
	return EFalse;
	}


/**
 傾僀僥儉僋儔僗傪強帩乮僉儍僢僔儏乯偟偰偄傞偐傪挷傋傞
 * @param [in]	aIndex			堦棗撪偱偺僀儞僨僢僋僗
 * @return	ETrue 僉儍僢僔儏桳/ EFalse 僉儍僢僔儏柍
 */
TBool CSmbMusicAPSyncServerContentsList::CheckItemCache(TInt aIndex)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsList08, "SyncServerContentsList::CheckItemCache()");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber08),
							ELogLevelLowest,
							KContentsList08);
#endif
	TInt	arrayIndex	= 0;
	TBool 	cache		= SearchItem(aIndex, arrayIndex);

	return cache;
	}

/**
 傾僀僥儉惗惉偺僉儍儞僙儖傪峴偆
 * @param	側偟
 * @return	側偟
 */
void CSmbMusicAPSyncServerContentsList::CancelCreateNewItem()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsList09, "SyncServerContentsList::CancelCreateNewItem()");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber09),
							ELogLevelLowest,
							KContentsList09);
#endif
	if(iListItem)
		{
		iListItem->CancelGetItemArray();
		}
	else
		{
		_LIT(KContentsList10, "SyncServerContentsList::CancelCreateNewItem() iListItem Null");
		SmbMusicAPSyncServerLog(iLog,
								(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber10),
								ELogLevelHigh,
								KContentsList10);
		}
	}


/**
 儕僗僩僴儞僪儖傪庢摼偡傞
 * @param	側偟
 * @return	儕僗僩僴儞僪儖
 */
TInt CSmbMusicAPSyncServerContentsList::GetListHandle()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	_LIT(KContentsList11, "SyncServerContentsList::GetListHandle() return:0x%08x");
	SmbMusicAPSyncServerLog(iLog,
							(EMusicAPSyncServerClassNumber_ContentsList|EMusicAPSyncServerLocationNumber11),
							ELogLevelLowest,
							KContentsList11,
							iListHandle);
#endif
	return iListHandle;
	}


/**

⌨️ 快捷键说明

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