📄 smbmusicapsyncservercontentsobserveupdatemanager.cpp
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPSyncServerContentsObserveUpdateManager.cpp
//
// Description:
// MW偐傜偺峏怴捠抦偺娔帇傪峴偆儅僱乕僕儍
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+----------------------------------------------
//2006/07/11 |K3悪杮 | 怴婯嶌惉
//2006/07/20 |K3悪杮 | RArray偺Close偟朰傟偺廋惓
//2006/08/07 |K3悪杮 | 僋儔僀傾儞僩捠抦帪偵index曗惓偑2廳偵偐偐偭偰偨栤戣偺廋惓
//2006/09/14 |K3悪杮 | QAC巜揈懳墳
//2006/10/10 |K3悪杮 | [iKeeper(TRK):11264,11279] 僶僢僼傽僋儕傾帪偺忋尷傪愝掕
//2006/10/21 |娵壀 | [iKeeper(TRK):11769]
//----PTX824----+-----------+----------------------------------------------
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSOBSERVEUPDATEMANAGER_H__
#include "SmbMusicAPSyncServerContentsObserveUpdateManager.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSOBSERVEUPDATEMANAGER_H__
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__
#include "SmbMusicAPSyncServerContentsManagerInterface.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSAPPNOTIFYMANAGER_H__
#include "SmbMusicAPSyncServerContentsAppNotifyManager.h"
#endif // __SMBMUSICAPSYNCSERVERCONTENTSAPPNOTIFYMANAGER_H__
#ifndef __SMBMUSICAPSYNCSERVERUTIL_H__
#include "SmbMusicAPSyncServerUtil.h"
#endif // __SMBMUSICAPSYNCSERVERUTIL_H__
//@@TRK11769懳墳 Add Start
#ifndef __SMBMUSICAPSYNCSERVERINTERNALDEF_H__
#include "SmbMusicAPSyncServerInternalDef.h"
#endif
//@@TRK11769懳墳 Add End
USING_NAMESPACE_SEMCJ
// ADD-S [iKeeper(TRK):11264,11279] 僶僢僼傽僋儕傾帪偺忋尷傪愝掕
#define KSmbMusicAPSyncServerUpdateInfoArrayMaxCount ( 20 )
// ADD-E [iKeeper(TRK):11264,11279] 僶僢僼傽僋儕傾帪偺忋尷傪愝掕
/**
* 峏怴捠抦娔帇儅僱乕僕儍惗惉梡僼傽僋僩儕娭悢
*
* @param[in] aLog 儘僌僒乕僶僙僢僔儑儞偺嶲徠
* @param[in] aLibSession MWLib僙僢僔儑儞偺嶲徠
* @param[in] aManagerInterface 儅僱乕僕儍僀儞僞僼僃乕僗偺嶲徠
*
* @return 惗惉偝傟偨峏怴捠抦娔帇儅僱乕僕儍偺僆僽僕僃僋僩
**/
CSmbMusicAPSyncServerContentsObserveUpdateManager* CSmbMusicAPSyncServerContentsObserveUpdateManager::NewL(
DCM_NAMESPACE::RLog& aLog,
RSmbMusicMWLibSession& aLibSession,
MSmbMusicAPSyncServerContentsManagerInterface& aManagerInterface
)
{
CSmbMusicAPSyncServerContentsObserveUpdateManager* self = new(ELeave) CSmbMusicAPSyncServerContentsObserveUpdateManager(
aLog,
aLibSession,
aManagerInterface
);
CleanupStack::PushL(self);
self -> ConstructL();
CleanupStack::Pop(self);
return self;
}
/**
* 僨僗僩儔僋僞
**/
CSmbMusicAPSyncServerContentsObserveUpdateManager::~CSmbMusicAPSyncServerContentsObserveUpdateManager()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsObserveUpdateManager | EMusicAPSyncServerLocationNumber00;
_LIT(KObserveUpdateManagerDestruct01, "SyncServerContentsObserveUpdateManager::~Destruct()");
SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelNormal, KObserveUpdateManagerDestruct01);
#endif
if (IsActive() != EFalse)
{
Cancel();
}
else
{
iHandleArray.Reset();
iUpdateArray.Reset();
}
iHandleArray.Close();
}
/**
* 僐儞僗僩儔僋僞
*
* @param[in] aLog 儘僌僒乕僶僙僢僔儑儞偺嶲徠
* @param[in] aLibSession MWLib僙僢僔儑儞偺嶲徠
* @param[in] aManagerInterface 儅僱乕僕儍僀儞僞僼僃乕僗偺嶲徠
**/
CSmbMusicAPSyncServerContentsObserveUpdateManager::CSmbMusicAPSyncServerContentsObserveUpdateManager(
DCM_NAMESPACE::RLog& aLog,
RSmbMusicMWLibSession& aLibSession,
MSmbMusicAPSyncServerContentsManagerInterface& aManagerInterface
)
:CActive(CActive::EPriorityStandard),
iLog(aLog),
iLibSession(aLibSession),
iManagers(aManagerInterface),
// MODIFY-S [iKeeper(TRK):11264,11279] 僶僢僼傽僋儕傾帪偺忋尷傪愝掕
iUpdateArray(KSmbMusicAPSyncServerUpdateInfoArrayMaxCount)
// MODIFY-E [iKeeper(TRK):11264,11279] 僶僢僼傽僋儕傾帪偺忋尷傪愝掕
{
CActiveScheduler::Add(this);
}
/**
* 2nd僐儞僗僩儔僋僞
**/
void CSmbMusicAPSyncServerContentsObserveUpdateManager::ConstructL()
{
// 尰忬張棟柍偟
}
/**
* 傾僋僥傿僽僆僽僕僃僋僩偺梫媮姰椆張棟
**/
void CSmbMusicAPSyncServerContentsObserveUpdateManager::RunL()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsObserveUpdateManager | EMusicAPSyncServerLocationNumber01;
_LIT(KObserveUpdateManagerRunL01, "SyncServerContentsObserveUpdateManager::RunL(%d)");
// MODIFY-S QAC巜揈懳墳
SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelLow, KObserveUpdateManagerRunL01, iStatus.Int());
// MODIFY-E QAC巜揈懳墳
#endif
if (iStatus <= 0)
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsObserveUpdateManager | EMusicAPSyncServerLocationNumber02;
_LIT(KObserveUpdateManagerRunL02, "SyncServerContentsObserveUpdateManager::RunL Status Error:%d");
// MODIFY-S QAC巜揈懳墳
SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelNormal, KObserveUpdateManagerRunL02, iStatus.Int());
// MODIFY-E QAC巜揈懳墳
#endif
return;
}
// 庢摼梡攝楍偵媗傔傞僨乕僞偺惗惉(弶婜壔)
TSmbMusicMWLibUpdateInfo updateInfo;
updateInfo.iHandle = 0;
updateInfo.iParam = -1;
iUpdateArray.Reset();
TRAPD(error, iUpdateArray.AppendL(&updateInfo, iStatus.Int()););
if (error != KErrNone)
{ // 撉傒崬傒僶僢僼傽偺弨旛偵幐攕
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsObserveUpdateManager | EMusicAPSyncServerLocationNumber03;
_LIT(KObserveUpdateManagerRunL03, "SyncServerContentsObserveUpdateManager::RunL() UpdateArray AppendL is Leave:%d");
SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelHigh, KObserveUpdateManagerRunL03, error);
return;
}
//@@TRK11769懳墳 Add Start
//僙僢僔儑儞傪愙懕偡傞
ConnectMusicLibSession();
//@@TRK11769懳墳 Add End
TInt dataCount(0); // 枹庢摼偺傾僀僥儉悢
// MW偐傜峏怴捠抦忣曬偺庢摼
TInt result = iLibSession.GetUpdateInfo(iUpdateArray, dataCount);
if (result == KErrNone || result == KErrOverflow)
{ // 庢摼惉岟傑偨偼僆乕僶乕僼儘乕帪
// 峏怴忣曬偺僠僃僢僋(僆乕僶乕僼儘乕帪傕堦墳峴偆)
TSmbMusicMWLibUpdateInfo updateInfo;
while(iUpdateArray.Count() > 0)
{
updateInfo = iUpdateArray[0];
iUpdateArray.Delete(0);
if (updateInfo.iHandle == 0)
{ // 峏怴忣曬偺僴儞僪儖偑0偩偭偨応崌
// 偦傟埲崀桳岠側忣曬偑擖偭偰側偄偲敾抐偟張棟廔椆
iUpdateArray.Reset();
}
else
{
// 峏怴忣曬敾掕
HandleItemUpdateNotify(updateInfo);
}
}
if (iHandleArray.Count() > 0)
{ // 娔帇懳徾僴儞僪儖攝楍偵傑偩僴儞僪儖偑懚嵼偡傞応崌
// 峏怴忣曬捠抦傪庴偗傞傛偆偵張棟
result = Start();
if (result != KErrNone)
{ // 峏怴忣曬捠抦奐巒偵幐攕偟偨応崌
return;
}
}
}
else
{ // 張棟寢壥偑偦偺懠僄儔乕偺応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsObserveUpdateManager | EMusicAPSyncServerLocationNumber04;
_LIT(KObserveUpdateManagerRunL05, "SyncServerContentsObserveUpdateManager::RunL() GetUpdateInfo Error:%d");
SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelNormal, KObserveUpdateManagerRunL05, result);
#endif
return;
}
}
/**
* 傾僋僥傿僽僆僽僕僃僋僩偺僉儍儞僙儖張棟偺幚懱
**/
void CSmbMusicAPSyncServerContentsObserveUpdateManager::DoCancel()
{
//@@TRK11769懳墳 Add Start
//僙僢僔儑儞傪愙懕偡傞
ConnectMusicLibSession();
//@@TRK11769懳墳 Add End
iLibSession.CancelItemUpdateNotify();
iHandleArray.Reset();
iUpdateArray.Reset();
}
/**
* 峏怴捠抦娔帇奐巒
*
* @param[in] aHandle 娔帇懳徾偵捛壛偡傞僴儞僪儖
*
* @return 張棟寢壥(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
**/
TInt CSmbMusicAPSyncServerContentsObserveUpdateManager::StartObservation(TInt aHandle)
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsObserveUpdateManager | EMusicAPSyncServerLocationNumber05;
_LIT(KObserveUpdateManagerStartObservation01, "SyncServerContentsObserveUpdateManager::StartObservation(0x%08x)");
SmbMusicAPSyncServerLog(iLog, logCode, ELogLevelLow, KObserveUpdateManagerStartObservation01, aHandle);
#endif
ASSERT(aHandle != 0);
TInt result(KErrNone);
if (iHandleArray.Count() == 0)
{ // 娔帇懳徾僴儞僪儖偑1偮傕側偄応崌
// MW懁偺僶僢僼傽偺僋儕傾傪峴偆
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -