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

📄 smbmusicapsyncservercontentsobserveupdatemanager.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* 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 + -