📄 smbmusicapsyncserverappfunc.cpp
字号:
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 + -