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

📄 smbmusicapsyncservercontentsserviceplinsertitem.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPSyncServerContentsServicePLInsertItem.cpp
//
// Description:
//  僾儗僀儕僗僩傊偺嬋傾僀僥儉捛壛梫媮僒乕價僗
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/06/12	|K3悪杮		| 怴婯嶌惉
//2006/07/06	|K3悪杮		| 傾僾儕-僒乕僶娫偺index僆儕僕儞傪挷惍
//				|			| 儘僌弌椡廋惓
//2006/07/12	|K3悪杮		| CheckCancel偑惓偟偔宲彸偱偒偰偄側偐偭偨偺偱廋惓
//2006/07/13	|K3悪杮		| delete偟偰偄側偄僆僽僕僃僋僩偑偁偭偨偺偱廋惓
//2006/07/18	|K3悪杮		| 僾儗僀儕僗僩偺僆乕僾儞/僋儘乕僘偺昁梫偑偁傞偨傔張棟捛壛
//2006/08/15	|K3悪杮		| 捠抦梡僾儗僀儕僗僩撪嬋悢偺庢摼偑惓偟偔側偐偭偨偺偱廋惓
//2006/09/07	|SDNA 壀嶳	| 孞傝曉偟梫媮偵懳墳偡傞偨傔丄僨僗僩儔僋僞偱DeleteOriginalPLList()傪幚峴偟側偄傛偆偵偟傑偟偨(TRK5139)
//2006/10/20	|K3悪杮		| [iKeeper(TRK):11872] 屆偄夋憸忣曬偑庢摼偝傟偰偄偨栤戣偺懳張
//				|			| 僐儊儞僩廋惓


#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSERVICEPLINSERTITEM_H__
#include "SmbMusicAPSyncServerContentsServicePLInsertItem.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSSERVICEPLINSERTITEM_H__


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


#ifndef __SMBMUSICAPSYNCSERVERDEF_H__
#include <SmbMusicAPSyncServerDef.h>
#endif	//  __SMBMUSICAPSYNCSERVERDEF_H__

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


#ifndef __SMBMUSICAPSYNCSERVERMODEL_H__
#include "SmbMusicAPSyncServerModel.h"
#endif	//  __SMBMUSICAPSYNCSERVERMODEL_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSFUNC_H__
#include "SmbMusicAPSyncServerContentsFunc.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSFUNC_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACEMANAGER_H__
#include "SmbMusicAPSyncServerContentsScreenTraceManager.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSSCREENTRACEMANAGER_H__

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSASYNCOBSERVER_H__
#include "SmbMusicAPSyncServerContentsAsyncObserver.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSASYNCOBSERVER_H__

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

#ifndef __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__
#include "SmbMusicAPSyncServerContentsManagerInterface.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSMANAGERINTERFACE_H__

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

//  ADD-S  [iKeeper(TRK):11872] 屆偄夋憸忣曬偑庢摼偝傟偰偄偨栤戣偺懳張
#ifndef __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__
#include "SmbMusicAPSyncServerContentsImageDataManager.h"
#endif	//  __SMBMUSICAPSYNCSERVERCONTENTSIMAGEDATAMANAGER_H__
//  ADD-E  [iKeeper(TRK):11872] 屆偄夋憸忣曬偑庢摼偝傟偰偄偨栤戣偺懳張


USING_NAMESPACE_SEMCJ

/**
 *  僐儞僗僩儔僋僞
 *
 *  @param[in]	aRlog				儘僌僒乕僶
 *  @param[in]	aModel				摨婜僒乕僶儌僨儖
 *  @param[in]	aObserver			旕摨婜僆僽僓乕僶
 *  @param[in]	aFunc				僼傽儞僋僔儑儞
 *  @param[in]	aManagerInterface	儅僱乕僕儍僀儞僞僼僃乕僗
 *  @param[in]	aScreenData			僗僋儕乕儞僩儗乕僗儅僱乕僕儍
 *  @param[in]	aRMessage			僋儔僀傾儞僩偐傜偺儊僢僙乕僕
 **/
CSmbMusicAPSyncServerContentsServicePLInsertItem::CSmbMusicAPSyncServerContentsServicePLInsertItem(
		DCM_NAMESPACE::RLog& aRlog,
		CSmbMusicAPSyncServerModel& aModel,
		MSmbMusicAPSyncServerContentsAsyncObserver& aObserver,
		CSmbMusicAPSyncServerContentsFunc& aFunc,
		MSmbMusicAPSyncServerContentsManagerInterface& aManagerInterface,
		CSmbMusicAPSyncServerContentsScreenTraceManager& aScreenData,
		const RMessage2& aRMessage
		)
	:CSmbMusicAPSyncServerContentsServiceBase(
			aRlog, aModel, aObserver, aFunc, aManagerInterface, aScreenData, aRMessage
			),
	 KPlayListMaxItem(10),			//  傾僀僥儉僴儞僪儖攝楍偺棻搙
	 iHandleArray(KPlayListMaxItem)	//  捛壛傾僀僥儉僴儞僪儖摦揑攝楍偺棻搙傪愝掕
	{
	}


/**
 *  僨僗僩儔僋僞
 **/
CSmbMusicAPSyncServerContentsServicePLInsertItem::~CSmbMusicAPSyncServerContentsServicePLInsertItem()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber00;
	_LIT(KServicePLInsertItemDestruct01, "SyncServerContentsServicePLInsertItem::~Destruct()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemDestruct01);
#endif

	if (IsActive() != EFalse)
		{
		CancelService();
		}

	iHandleArray.Reset();

	if (iPLItem != NULL)
		{	//  捛壛愭僾儗僀儕僗僩偑偁傞応崌
		PLListClose();	//  僾儗僀儕僗僩僋儘乕僘張棟
		}

	//  嬋傾僀僥儉偺攋婞
	iSongArray.ResetAndDestroy();
	iSongArray.Close();

	delete iItemArray;

	delete iIndexArray;

	delete iPLItem;

//	iScreenData.DeleteOriginalPLList();
	}


/**
 *  僉儍儞僙儖梫媮偵懳偡傞僒乕價僗僉儍儞僙儖敾掕
 *
 *  @param[in]	aCancelEvent	僉儍儞僙儖梫媮偝傟偨僀儀儞僩僞僀僾
 *
 *  @return	僉儍儞僙儖傪庴偗傞偐偳偆偐偺敾掕(ETrue:梫媮僉儍儞僙儖丄EFalse:梫媮傪僉儍儞僙儖偟側偄)
 **/
TBool CSmbMusicAPSyncServerContentsServicePLInsertItem::CheckCancel(TSmbMusicAPSyncServerFunction aCancelEvent)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber01;
	_LIT(KServicePLInsertItemCheckCancel01, "SyncServerContentsServicePLInsertItem::CheckCancel(%d)");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemCheckCancel01, aCancelEvent);
#endif

	if (aCancelEvent == ESmbMusicAPSyncServerFuncCancelInsertItemsToPlaylist)
		{	//  帺僒乕價僗偺僉儍儞僙儖梫媮偺応崌
		return ETrue;
		}
	return EFalse;
	}


/**
 *  僒乕價僗偺奐巒梫媮
 *
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServicePLInsertItem::StartServiceL()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber02;
	_LIT(KServicePLInsertItemStartServiceL01, "SyncServerContentsServicePLInsertItem::StartServiceL Start");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemStartServiceL01);
#endif

	if (iItemArray == NULL)
		{  //  儕僗僩攝楍偑惗惉偝傟偰偄側偄応崌
		//  儕僗僩傾僀僥儉庢摼梡儕僗僩攝楍惗惉
		iItemArray = CSmbMusicMWLibItemArray::NewL(1);	//  1嬋暘
		}

	//  RMessage偐傜僷儔儊乕僞撉崬
	if (LoadParamL() == EFalse)
		{	//  摨婜僄儞僕儞偐傜偺儊僢僙乕僕偑晄惓偩偭偨
		MessageComplete(KErrArgument);
		return ESmbMusicAPSyncServerContetnsServiceStateEnd;
		}

	//  僾儗僀儕僗僩嬋堦棗儕僗僩庢摼
	iPLList = iScreenData.GetList(iPLHandle);
	if (iPLList == NULL)
		{	//  儕僗僩偺庢摼偵幐攕
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber03;
		_LIT(KServicePLInsertItemStartServiceL02, "SyncServerContentsServicePLInsertItem::StartServiceL GetList Error");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemStartServiceL02);
#endif
		MessageComplete(KErrNotFound);
		return ESmbMusicAPSyncServerContetnsServiceStateEnd;
		}

	//  傾僀僥儉儕僗僩偺弶婜壔
	ItemArray().Reset();

	//  捛壛懳徾僾儗僀儕僗僩傾僀僥儉庢摼
	TInt retState(KErrNone);
	retState = iPLList -> CreateNewItem(ItemArray(), iIndex, 1, iStatus);
	if (retState != KErrNone)
		{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
		logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber04;
		_LIT(KServicePLInsertItemStartServiceL03, "SyncServerContentsServicePLInsertItem::StartServiceL CreateNewItem Error:%d");
		SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemStartServiceL03, retState);
#endif
		MessageComplete(retState);
		return ESmbMusicAPSyncServerContetnsServiceStateEnd;
		}

	//  傾僀僥儉庢摼懸偪忬懺傊
	iServiceState = EContentsServicePLInsertItemStateGetPLList;
	CSmbMusicAPSyncServerContentsServiceBase::Start();

#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber05;
	_LIT(KServicePLInsertItemStartServiceL04, "SyncServerContentsServicePLInsertItem::StartServiceL End");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLowest, KServicePLInsertItemStartServiceL04);
#endif

	return ESmbMusicAPSyncServerContetnsServiceStateContinue;
	}


/**
 *  僒乕價僗僄儔乕捠抦
 *
 *  @param[in]	aError	僄儔乕僐乕僪
 *
 *  @return	僒乕價僗張棟偺宲懕忬嫷
 **/
TSmbMusicAPSyncServerContentsServiceState CSmbMusicAPSyncServerContentsServicePLInsertItem::ServiceErr(TInt aError)
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber06;
	_LIT(KServicePLInsertItemServiceErr01, "SyncServerContentsServicePLInsertItem::ServiceErr(%d):%d");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServicePLInsertItemServiceErr01, aError, iServiceState);
#endif
	if (iServiceState == EContentsServicePLInsertItemStateOpenPLList)	//  捛壛愭僾儗僀儕僗僩傪僆乕僾儞拞
		{	//  捛壛愭僾儗僀儕僗僩偺僆乕僾儞偵幐攕
		//  僾儗僀儕僗僩僆乕僾儞僼儔僌傪僋儕傾
		iListOpen = EFalse;
		}

	MessageComplete(aError);
	iServiceState = EContentsServicePLInsertItemStateIdle;	//  僒乕價僗忬懺傪張棟柍偟忬懺傊

	return ESmbMusicAPSyncServerContetnsServiceStateErr;
	}


/**
 *  僒乕價僗僉儍儞僙儖捠抦
 **/
void CSmbMusicAPSyncServerContentsServicePLInsertItem::CancelService()
	{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
	TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber07;
	_LIT(KServicePLInsertItemCancelService01, "SyncServerContentsServicePLInsertItem::CancelService()");
	SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServicePLInsertItemCancelService01);
#endif

	switch(iServiceState)
		{
		case EContentsServicePLInsertItemStateGetPLList:	//  捛壛愭僾儗僀儕僗僩庢摼拞
			{
			ASSERT(iPLList != NULL);
			//  僾儗僀儕僗僩傾僀僥儉惗惉僉儍儞僙儖
			iPLList -> CancelCreateNewItem();
			}
			break;
		case EContentsServicePLInsertItemStateOpenPLList:	//  捛壛愭僾儗僀儕僗僩傪僆乕僾儞拞
			{
			//  僾儗僀儕僗僩偺僆乕僾儞僉儍儞僙儖
			PLListClose();
			}
			break;
		case EContentsServicePLInsertItemStateGetSongItem:	//  捛壛偡傞傾僀僥儉偺僴儞僪儖庢摼拞
			{
			ASSERT(iItemList != NULL);
			//  嬋傾僀僥儉惗惉僉儍儞僙儖
			iItemList -> CancelCreateNewItem();
			}
			break;
		case EContentsServicePLInsertItemStateInsertItem:	//  嬋傾僀僥儉捛壛張棟拞
			{
			ASSERT(iPLItem != NULL);
			//  嬋傾僀僥儉捛壛僉儍儞僙儖
			iPLItem -> CancelInsertItem();

			// 傾僀僥儉偑憹偊偰偄傟偽丄傾僀僥儉捛壛偺捠抦傪偡傞
			TInt count = iPLItem -> Count();
			if(iOriginalCount < count)
				{
				iManagers.AppNotifyManager().NotifyAddItem(iPLHandle, count - iOriginalCount);
				}
			}
			break;
		case EContentsServicePLInsertItemStateIdle:			//  張棟柍偟
			break;
		default:
			{
			TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServicePLInsertItem | EMusicAPSyncServerLocationNumber08;

⌨️ 快捷键说明

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