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