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

📄 smbmusicapsyncserverappfunc.cpp

📁 索爱相关代码。实现功能是server。很有参考价值。代码很难弄到。symbian。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
				SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KAppFuncLog02, ret);
				}
			}

		// 夝曻姰椆傪捠抦(Read/Write偑幐攕偟偰傕傾僋僥傿僽僙僢僔儑儞偼曄峏偝傟偨偺偱KErrNone傪曉偡)
		iReqMessage.Complete(KErrNone);

		if(iReqCount > 0)
			{
			//梫媮儊僢僙乕僕傪僨僋儕儊儞僩偡傞
			iReqCount--;
			}
		}
	else	// 墳摎偑傾僋僥傿僽僙僢僔儑儞埲奜偐傜偺応崌
		{
		// 儘僌傪弌椡
		TInt log = EMusicAPSyncServerClassNumber11 | EMusicAPSyncServerLocationNumber03;
		_LIT(KAppFuncLog03, "SyncServerAppFunc::ReturnReleaseRes");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KAppFuncLog03);
		}
	aMessage.Complete(KErrNone);
	}

/**
 夋柺峏怴捠抦
 * @param [in]	aMessage	僋儔僀傾儞僩偐傜搉偝傟偨僨乕僞傪奿擺偟偨儊僢僙乕僕偺嶲徠
 * @return	側偟
 */
void CSmbMusicAPSyncServerAppFunc::NotifyUpdateDisplay(const RMessage2& aMessage)
	{
	// Read偺栠傝抣
	TInt ret = KErrNone;

	// 梫媮儊僢僙乕僕偺撪梕(夋柺峏怴忣曬)傪庢摼
	TSmbMusicAPSyncServerAppSyncReqPkg reqPkg;
	TPckg<TSmbMusicAPSyncServerAppSyncReqPkg> p(reqPkg);

	ret = aMessage.Read(0,p);
	if (KErrNone != ret)
		{
		// 儘僌弌椡
		TInt log = EMusicAPSyncServerClassNumber11 | EMusicAPSyncServerLocationNumber04;
		_LIT(KAppFuncLog04, "SyncServerAppFunc::NotifyUpdateDisplay Read() Err(%d)");
		SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KAppFuncLog04, ret);

		//僀儀儞僩傪攝怣偣偢偵姰椆
		aMessage.Complete(KErrNone);

		return;
		}

	// 墳摎儊僢僙乕僕傪嶌惉
	TSmbMusicAPSyncEngineSyncEvent res;
	res.iType = ESmbMusicAPSyncEngineUpdateInfo;
	res.iInfo = reqPkg.iData.iSyncMsg.iInfo;

//@@TRK4008懳墳		Start
	CSession2* session;
	session = aMessage.Session();
	//攝怣偡傞僀儀儞僩傪搊榐偡傞
	AppendReuqestEvent(*session, res);
	//僀儀儞僩傪攝怣偡傞
	BroadCast();

//	for ( TInt i = iNotifyMessage.Count(); i > 0; i--)
//		{
//		if (iNotifyMessage[i-1].Session() != session )
//			{
//			// 墳摎儊僢僙乕僕傪Write
//			TPckg<TSmbMusicAPSyncEngineSyncEvent> pRes(res);
//			iNotifyMessage[i-1].WriteL(1, pRes);
//			iNotifyMessage[i-1].Complete(KErrNone);
//			iNotifyMessage.Remove(i-1);
//			}
//		}
//@@TRK4008懳墳		End
	aMessage.Complete(KErrNone);
	}

/**
 僀儀儞僩捠抦梫媮曐懚
 * @param [in]	aMessage	僋儔僀傾儞僩偐傜搉偝傟偨僨乕僞傪奿擺偟偨儊僢僙乕僕偺嶲徠
 * @return	側偟
 */
void CSmbMusicAPSyncServerAppFunc::StackNotifyMsg(const RMessage2& aMessage)
	{
	// 僀儀儞僩捠抦梫媮傪曐懚
	iNotifyMessage.Append(aMessage);

	//僀儀儞僩傪攝怣偡傞乮僀儀儞僩偑僉儏乕偝傟偰偄傞応崌偑偁傞乯
	BroadCast();
	}

/**
 僀儀儞僩捠抦梫媮偺僉儍儞僙儖
 * @param [in]	aMessage	僋儔僀傾儞僩偐傜搉偝傟偨僨乕僞傪奿擺偟偨儊僢僙乕僕偺嶲徠
 * @return	側偟
 */
void CSmbMusicAPSyncServerAppFunc::CancelStackNotifyMsg(const RMessage2& aMessage)
	{
	CSession2* session;
	session = aMessage.Session();

	for ( TInt i = iNotifyMessage.Count(); i > 0; i--)
		{
		// 曐懚偟偰偄傞僀儀儞僩捠抦梫媮偲堷悢偺session偑摨偠傕偺偵懳偟偰姰椆偝偣傞
		if (iNotifyMessage[i-1].Session() == session )
			{
			iNotifyMessage[i-1].Complete(KErrNone);
			iNotifyMessage.Remove(i-1);
			}
		}
	aMessage.Complete(KErrNone);
	}

/**
 傾僾儕働乕僔儑儞廔椆捠抦
 * @param [in]	aMessage	僋儔僀傾儞僩偐傜搉偝傟偨僨乕僞傪奿擺偟偨儊僢僙乕僕偺嶲徠
 * @return	側偟
 */
void CSmbMusicAPSyncServerAppFunc::NotifyAppExit(const RMessage2& aMessage)
	{
	// Write偺栠傝抣
	TInt ret = KErrNone;

	CSession2* session;
	session = aMessage.Session();

	// 墳摎儊僢僙乕僕傪嶌惉
	TSmbMusicAPSyncEngineSyncEvent res;
	res.iType = ESmbMusicAPSyncEngineRequestExitApp;

	for ( TInt i = iNotifyMessage.Count(); i > 0; i--)
		{
		if (iNotifyMessage[i-1].Session() == session )
			{
			// 墳摎儊僢僙乕僕傪Write
			TPckg<TSmbMusicAPSyncEngineSyncEvent> pRes(res);
			ret = iNotifyMessage[i-1].Write(1, pRes);
			if (KErrNone != ret)
				{
				// 儘僌弌椡
				TInt log = EMusicAPSyncServerClassNumber11 | EMusicAPSyncServerLocationNumber05;
				_LIT(KAppFuncLog05, "SyncServerAppFunc::NotifyAppExit");
				SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KAppFuncLog05);

				// Write偱僄儔乕偑偍偒偨偺偱丄僀儀儞僩攝怣傪峴傢側偄
				iNotifyMessage[i-1].Complete(KErrWrite);
				}
			else	// Write惉岟
				{
				iNotifyMessage[i-1].Complete(KErrNone);
				}
			iNotifyMessage.Remove(i-1);
			}
		}

	if(iReqCount > 0)
		{
		//梫媮儊僢僙乕僕傪強桳偟偰偄傞応崌
		if(session == iReqMessage.Session())
			{
			// iReqMessage偺敾掕昁梫丠
			// 梫媮姰椆傪捠抦
			iReqMessage.Complete(KErrNone);

			//梫媮儊僢僙乕僕傪僨僋儕儊儞僩偡傞
			iReqCount--;
			}
		}
//偙偙偱偼儊僢僙乕僕傪Complete偟傑偣傫
//	aMessage.Complete(KErrNone);
	}

/**
 摨婜僒乕僶傊偺傾僋僙僗妋擣
 * @param [in]	aMessage	僋儔僀傾儞僩偐傜搉偝傟偨僨乕僞傪奿擺偟偨儊僢僙乕僕偺嶲徠
 * @return	側偟
 */
void CSmbMusicAPSyncServerAppFunc::HasSyncServer(const RMessage2& aMessage)
	{
	CSession2* session;
	TBool ret = EFalse;

	// 傾僋僥傿僽僙僢僔儑儞偲堷悢偺session偑摨偠偱偁傟偽丄ETrue傪曉偡(偦偆偱側偗傟偽EFalse傪曉偡)
	session = aMessage.Session();
	if (session == iActiveSession)
		{
		ret = ETrue;
		}
	aMessage.Complete(ret);
	}

/**
 傾僋僥傿僽僙僢僔儑儞偺栤偄崌傢偣
 * @param [in]	aMessage	僋儔僀傾儞僩偐傜搉偝傟偨僨乕僞傪奿擺偟偨儊僢僙乕僕偺嶲徠
 * @return	傾僋僥傿僽僙僢僔儑儞偐傜偺儊僢僙乕僕偐斲偐
 */
TBool CSmbMusicAPSyncServerAppFunc::IsActiveSession(const RMessage2& aMessage)
	{
	CSession2* session;
	TBool ret = EFalse;

	// 傾僋僥傿僽僙僢僔儑儞偲堷悢偺session偑摨偠偱偁傟偽丄ETrue傪曉偡(偦偆偱側偗傟偽EFalse傪曉偡)
	session = aMessage.Session();
	if (session == iActiveSession)
		{
		ret = ETrue;
		}
	return ret;
	}

//@@TRK4008懳墳		Start
/**
 攝怣偡傞僀儀儞僩傪搊榐偡傞
 * @param [in]	aSession	攝怣尦偺僙僢僔儑儞
 * @param [in]	aEvent		攝怣偡傞僀儀儞僩
 * @return	側偟
 */
void CSmbMusicAPSyncServerAppFunc::AppendReuqestEvent(CSession2& aSession, TSmbMusicAPSyncEngineSyncEvent& aEvent)
	{
	//僒乕僶偲愙懕偟偰偄傞僙僢僔儑儞悢
	TInt cnt = iSession.Count();
	for(TInt i = 0; i < cnt; i++)
		{
		//僀儀儞僩攝怣尦偲堎側傞慡偰偺僙僢僔儑儞偵僀儀儞僩傪攝怣偡傞
		if(&aSession != iSession[i].iConnectSession)
			{
			//攝怣僀儀儞僩傪僉儏乕僀儞僌偡傞
			iSession[i].iEvent.Append(aEvent);
			}
		}
	}

/**
搊榐偝傟偨僀儀儞僩傪攝怣偡傞
 * @return	側偟
 */
void CSmbMusicAPSyncServerAppFunc::BroadCast()
	{
	// Write偺栠傝抣
	TInt ret = KErrNone;

	//僒乕僶偲愙懕偟偰偄傞僙僢僔儑儞悢
	TInt cnt = iSession.Count();
	for(TInt i = 0; i < cnt; i++)
		{
		//僀儀儞僩偑僉儏乕偝傟偰偄傟偽攝怣偡傞
		if(iSession[i].iEvent.Count() > 0)
			{
			//攝怣愭偺Watcher傪扵偡
			for ( TInt j = iNotifyMessage.Count(); j > 0; j--)
				{
				//僀儀儞僩偑僉儏乕偝傟偰偄傞僙僢僔儑儞偺Watcher傪扵偡
				if (iNotifyMessage[j-1].Session() == iSession[i].iConnectSession )
					{
					// 墳摎儊僢僙乕僕傪Write
					TPckg<TSmbMusicAPSyncEngineSyncEvent> pRes(iSession[i].iEvent[0]);
					ret = iNotifyMessage[j-1].Write(1, pRes);
					if (KErrNone != ret)
						{
						// 儘僌弌椡
						TInt log = EMusicAPSyncServerClassNumber11 | EMusicAPSyncServerLocationNumber06;
						_LIT(KAppFuncLog06, "SyncServerAppFunc::BroadCast");
						SmbMusicAPSyncServerLog(iLog, log, ELogLevelHighest, KAppFuncLog06);

						// Write偵幐攕偟偨偺偱丄僀儀儞僩攝怣傪峴傢側偄
						iNotifyMessage[j-1].Complete(KErrWrite);
						}
					else	// Write偵惉岟
						{
						iNotifyMessage[j-1].Complete(KErrNone);
						}

					iNotifyMessage.Remove(j-1);
					//僉儏乕偝傟偰偄傞僀儀儞僩傪嶍彍偡傞
					iSession[i].iEvent.Remove(0);
					//僉儏乕傪攋婞偟偨偺偱2抜栚偺儖乕僾傪敳偗傑偡
					break;
					}
				}
			}
		}
	}

/**
 僙僢僔儑儞偺愗抐捠抦
 * @param [in]	aSession	攝怣傕偲偺僙僢僔儑儞
 * @param [in]	aEvent		攝怣偡傞僀儀儞僩
 * @return	側偟
 */
void CSmbMusicAPSyncServerAppFunc::RemoveSession(CSession2& aSession)
	{
	//僒乕僶偲愙懕偟偰偄傞僙僢僔儑儞悢
	TInt cnt = iSession.Count();
	for(TInt i = 0; i < cnt; i++)
		{
		//愗抐傪捠抦偟偰棃偨僙僢僔儑儞傪扵偡
		if(&aSession == iSession[i].iConnectSession)
			{
			//搊榐偝傟偰偄傞僙僢僔儑儞偲僀儀儞僩傪嶍彍偡傞
			iSession[i].iEvent.Close();
			iSession.Remove(i);
			return;
			}
		}
	}
//@@TRK4008懳墳		End


//  ADD-S PTX824 k3-sugimoto
/**
 *  堦妵儔僀僙儞僗僠僃僢僋幚峴忬嫷愝掕
 *
 *  @param[in]	aMessage	僋儔僀傾儞僩偐傜偺儊僢僙乕僕(僋儔僀傾儞僩偐傜偺僨乕僞桳)
 **/
void CSmbMusicAPSyncServerAppFunc::SetLicenceCheckCompletion(const RMessage2& aMessage)
	{
	//  摨婜僄儞僕儞偐傜偺梫媮儊僢僙乕僕偺撉崬
	TInt maxLen = aMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn1);
	if (maxLen < sizeof(TSmbMusicAPSyncServerAppSyncReqPkg))
		{	//  僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕挿偑堎忢側応崌
		aMessage.Complete(KErrArgument);
		return;
		}

	//  梫媮僷僢働乕僕偺撉崬
	TInt result(KErrNone);
	TSmbMusicAPSyncServerAppSyncReqPkg reqPkg;
	TPckg<TSmbMusicAPSyncServerAppSyncReqPkg> pkg(reqPkg);
	result = aMessage.Read(KSmbMusicAPSyncEngineMsgIn1, pkg);
	if (result != KErrNone)
		{	//  僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕偺撉崬偵幐攕
		aMessage.Complete(result);
		return;
		}

	//  堦妵儔僀僙儞僗僠僃僢僋幚峴忬嫷愝掕
	iLicenceCheckCompletion = reqPkg.iData.iSyncMsg.iInfo.iParam1;

	aMessage.Complete(KErrNone);
	}

/**
 *  堦妵儔僀僙儞僗僠僃僢僋幚峴忬嫷庢摼
 *
 *  @param[in]	aMessage	僋儔僀傾儞僩偐傜偺儊僢僙乕僕
 **/
void CSmbMusicAPSyncServerAppFunc::IsLicenceCheckCompletion(const RMessage2& aMessage)
	{
	//  堦妵儔僀僙儞僗僠僃僢僋幚峴忬嫷傪曉偡丅
	aMessage.Complete(iLicenceCheckCompletion);
	}
//  ADD-S PTX824 k3-sugimoto


// end of SmbMusicAPSyncServerAppFunc.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */

⌨️ 快捷键说明

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