📄 smbmusicapsyncservercontentsservicegetsonglimitinfo.cpp
字号:
// 張棟廔椆
retState = ESmbMusicAPSyncServerContetnsServiceStateErr;
}
}
break;
case EContentsServiceGetSongLimitInfoStateGetLimitInfo: // 嵞惗惂尷忣曬庢摼拞
{
TInt result = GetConditionAndId(); // 嵞惗惂尷忬懺丒嬋ID庢摼
if (result == KErrNone)
{ // 嵞惗惂尷忬懺丒嬋ID庢摼偵惉岟
// 僋儔僀傾儞僩傊偺忣曬彂偒弌偟
result = CompletionGetSongLimitInfo();
}
if (result != KErrNone)
{ // 嵞惗惂尷忬懺丒嬋ID庢摼偐僋儔僀傾儞僩傊偺忣曬彂偒弌偟偑僄儔乕
// 僄儔乕偱張棟廔椆
retState = ESmbMusicAPSyncServerContetnsServiceStateErr;
}
else
{
// 張棟廔椆
retState = ESmbMusicAPSyncServerContetnsServiceStateEnd;
}
MessageComplete(result);
// 枹幚峴忬懺傊
iServiceState = EContentsServiceGetSongLimitInfoStateIdle;
}
break;
case EContentsServiceGetSongLimitInfoStateIdle: // 張棟柍偟
// 張棟柍偟忬懺偵ContinueService偑屇偽傟傞偙偲偼堎忢宯偱偁傞偨傔default摨條偵張棟偡傞丅
default:
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber10;
_LIT(KServiceGetSongLimitInfoContinueServiceL02, "SyncServerContentsServiceGetSongLimitInfo::ContinueServiceL illegal default-route:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHighest, KServiceGetSongLimitInfoContinueServiceL02, iServiceState);
ASSERT(EFalse);
}
break;
}
return retState;
}
/**
* 僷儔儊乕僞撉崬
*
* @return 僷儔儊乕僞撉崬惉斲(ETrue:栤戣側偟丄EFalse:栤戣偁傝)
**/
TBool CSmbMusicAPSyncServerContentsServiceGetSongLimitInfo::LoadParam()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber11;
_LIT(KServiceGetSongLimitInfoLoadParam01, "SyncServerContentsServiceGetSongLimitInfo::LoadParam");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetSongLimitInfoLoadParam01);
#endif
// 摨婜僄儞僕儞偐傜偺梫媮儊僢僙乕僕偺撉崬
TInt maxLen = iRMessage.GetDesLength(KSmbMusicAPSyncEngineMsgIn1);
if (maxLen < sizeof(TSmbMusicAPSyncServerContentsReqPkg))
{ // 僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕挿偑堎忢側応崌
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber12;
_LIT(KServiceGetSongLimitInfoLoadParam02, "SyncServerContentsServiceGetSongLimitInfo::LoadParam Argument 1 Error:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoLoadParam02, maxLen);
return EFalse;
}
// 梫媮僷僢働乕僕偺撉崬
TInt error(KErrNone);
TSmbMusicAPSyncServerContentsReqPkg reqPkg;
TPckg<TSmbMusicAPSyncServerContentsReqPkg> pkg(reqPkg);
error = iRMessage.Read(KSmbMusicAPSyncEngineMsgIn1, pkg);
if (error != KErrNone)
{ // 僋儔僀傾儞僩偐傜偺梫媮儊僢僙乕僕偺撉崬偵幐攕
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber13;
_LIT(KServiceGetSongLimitInfoLoadParam03, "SyncServerContentsServiceGetSongLimitInfo::LoadParam ContentsReqPkg Load Error:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoLoadParam03, error);
return EFalse;
}
// 庢摼懳徾嬋傾僀僥儉忣曬
iItemIndex = reqPkg.iData.iGetSongLimitInfo.iSongItem; // 懳徾嬋傾僀僥儉忣曬
iItemIndex.iIndex++; // index僆儕僕儞傪挷惍
return ETrue;
}
/**
* 懳徾嬋傾僀僥儉愝掕丒嵞惗惂尷庬暿敾掕
*
* @return 張棟惉斲(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
**/
TInt CSmbMusicAPSyncServerContentsServiceGetSongLimitInfo::CheckSongLimitation()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber14;
_LIT(KServiceGetSongLimitInfoCheckSongLimitation01, "SyncServerContentsServiceGetSongLimitInfo::CheckSongLimitation() Start");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetSongLimitInfoCheckSongLimitation01);
#endif
// 庢摼偟偨儕僗僩攝楍偺梫慺悢僠僃僢僋
if (iItemArray -> Count() < 1)
{ // 梫慺悢偑懌傝側偄(1側偄)応崌
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber15;
_LIT(KServiceGetSongLimitInfoCheckSongLimitation02, "SyncServerContentsServiceGetSongLimitInfo::CheckSongLimitation no enough array:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoCheckSongLimitation02, iItemArray -> Count());
return KErrNotReady;
}
// 懳徾嬋傾僀僥儉弶婜壔
delete iSongItem;
iSongItem = NULL;
// 庢摼偟偨儕僗僩攝楍偐傜嬋傾僀僥儉傪庢傝弌偡
TRAPD(error, iSongItem = static_cast<CSmbMusicMWLibSongItem*>(iItemArray -> GetMusicItemL(0)););
if (error != KErrNone)
{ // 嬋傾僀僥儉偺庢傝弌偟偵幐攕偟偨応崌
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber16;
_LIT(KServiceGetSongLimitInfoCheckSongLimitation03, "SyncServerContentsServiceGetSongLimitInfo::CheckSongLimitation GetMusicItemL is Leave:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoCheckSongLimitation03, error);
return error;
}
if (iSongItem == NULL)
{ // 庢傝弌偟偨嬋傾僀僥儉偑NULL偩偭偨応崌
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber17;
_LIT(KServiceGetSongLimitInfoCheckSongLimitation04, "SyncServerContentsServiceGetSongLimitInfo::CheckSongLimitation GetMusicItemL is NULL");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoCheckSongLimitation04);
return KErrNotFound;
}
// 傾僀僥儉儕僗僩偺弶婜壔
iItemArray -> Reset();
const TSmbMusicMWLibDispSongInfo* dispInfo = iSongItem -> DispInformation(); // 嵞惗昞帵梡忣曬庢摼
if (dispInfo == NULL)
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber18;
_LIT(KServiceGetSongLimitInfoCheckSongLimitation05, "SyncServerContentsServiceGetSongLimitInfo::CheckSongLimitation DispInformation is NULL");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoCheckSongLimitation05);
return KErrNotFound;
}
// 嵞惗惂尷庬暿庢摼
#ifdef __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
TSmbMusicAPSyncEngineLimitation limitation(ESmbMusicAPSyncEngineLimitNone);
#else // __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
TSmbMusicAPSyncEngineLimitation limitation = TSmbMusicAPSyncServerConverter::ConvertLimitation(dispInfo -> iLimitation, &iRLog);
#endif // __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
iLimitInfo.iLimitation = limitation;
if (limitation != ESmbMusicAPSyncEngineLimitSubscription)
{ // 懳徾嬋偑僒僽僗僋儕僾僔儑儞埲奜偺応崌
return KErrCompletion; // 屻偱KErrNone偵曄姺
}
return KErrNone;
}
/**
* 嵞惗惂尷忣曬庢摼
*
* @param[in] aType 庢摼偡傞夋憸偺僞僀僾
*
* @return 張棟寢壥(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
**/
TInt CSmbMusicAPSyncServerContentsServiceGetSongLimitInfo::LimitInformation()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber19;
_LIT(KServiceGetSongLimitInfoLimitInformation01, "SyncServerContentsServiceGetSongLimitInfo::LimitInformation()");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetSongLimitInfoLimitInformation01);
#endif
TInt result(KErrNone);
// 嵞惗惂尷忣曬庢摼
result = iSongItem -> LimitInformation(iSongLimit, iStatus);
if (result != KErrNone)
{ // 嵞惗惂尷忣曬庢摼梫媮偵幐攕
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber20;
_LIT(KServiceGetSongLimitInfoLimitInformation02, "SyncServerContentsServiceGetSongLimitInfo::LimitInformation LimitInformation Error = %d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoLimitInformation02, result);
}
return result;
}
/**
* 嵞惗惂尷忬懺偲嬋ID庢摼
*
* @return 張棟寢壥(KErrNone:張棟惉岟丄System-wide Error:張棟幐攕)
**/
TInt CSmbMusicAPSyncServerContentsServiceGetSongLimitInfo::GetConditionAndId()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber21;
_LIT(KServiceGetSongLimitInfoGetConditionAndId01, "SyncServerContentsServiceGetSongLimitInfo::GetConditionAndId()");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetSongLimitInfoGetConditionAndId01);
#endif
iLimitInfo.iLimitCondition = ESmbMusicAPSyncEngineLimitInvalid; // 嵞惗惂尷忬懺柍岠
iLimitInfo.iProhibition = iSongLimit.iProhibition; // 嵞惗嬛巭巜掕忬懺
// 嬋ID庢摼
TInt result = iSongItem -> SongId(iLimitInfo.iSongId);
if (result != KErrNone)
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber23;
_LIT(KServiceGetSongLimitInfoGetConditionAndId03, "SyncServerContentsServiceGetSongLimitInfo::GetConditionAndId SongId Error = %d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoGetConditionAndId03, result);
return result;
}
#ifdef __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
iLimitInfo.iIsExistCpInfo = ETrue;
iLimitInfo.iLimitCondition = ESmbMusicAPSyncEngineLimitAnythingGoes;
#else // __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
iLimitInfo.iIsExistCpInfo = iSongLimit.iIsExistCpInfo;
if (iSongLimit.iIsExistCpInfo == EFalse)
{ // 堏摦婡撪偵尃棙忣曬偑側偄応崌
// 嵞惗惂尷忬懺庢摼偼峴傢偢張棟傪姰椆偝偣傞
return KErrNone;
}
// ADD-S [D_82400015314]RTC僄儔乕偺敾掕傪捛壛
else if (iSongLimit.iRtcErrHistory != EFalse)
{ // RTC僄儔乕敪惗忬懺偺応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber26;
_LIT(KServiceGetSongLimitInfoGetConditionAndId05, "SyncServerContentsServiceGetSongLimitInfo::GetConditionAndId RTCError = %d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoGetConditionAndId05,iSongLimit.iRtcErrHistory);
#endif
// RTC僄儔乕傪曉媝偡傞
iLimitInfo.iLimitCondition = ESmbMusicAPSyncEngineLimitRtcErrorOccurred;
return KErrNone;
}
// ADD-E [D_82400015314]RTC僄儔乕偺敾掕傪捛壛
else if ((iSongLimit.iIsExistCpInfo != EFalse) && (iSongLimit.iExpireDate == 0) && (iSongLimit.iGracePeriod == 0))
{ // 堏摦婡撪偵偼尃棙忣曬偑側偔SD忋偵尃棙忣曬偑懚嵼偡傞応崌
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber22;
_LIT(KServiceGetSongLimitInfoGetConditionAndId02, "SyncServerContentsServiceGetSongLimitInfo::GetConditionAndId CRinfo on SD Exist:%d Expire:%ld Grace:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoGetConditionAndId02,
iSongLimit.iIsExistCpInfo, iSongLimit.iExpireDate.Int64(), iSongLimit.iGracePeriod);
#endif
// 嵞惗惂尷忬懺庢摼偼峴傢偢張棟傪姰椆偝偣傞
return KErrNone;
}
// 嵞惗惂尷忬懺庢摼
TSmbMusicMWLibLimitCondition condition(ESmbMusicMWLibLimitAnythingGoes);
result = iSongLimit.LimitCondition(condition);
if (result != KErrNone)
{
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber22;
_LIT(KServiceGetSongLimitInfoGetConditionAndId02, "SyncServerContentsServiceGetSongLimitInfo::GetConditionAndId LimitCondition Error = %d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelHigh, KServiceGetSongLimitInfoGetConditionAndId02, result);
return result;
}
iLimitInfo.iLimitCondition = TSmbMusicAPSyncServerConverter::ConvertLimitCondition(condition, &iRLog);
#endif // __SMBMUSICAPSYNCSERVER_ENABLE_PTX810__
return KErrNone;
}
/**
* 僋儔僀傾儞僩偺墳摎偲偟偰惂尷忣曬傪彂偒弌偡
*
* @return 張棟寢壥
**/
TInt CSmbMusicAPSyncServerContentsServiceGetSongLimitInfo::CompletionGetSongLimitInfo()
{
#ifdef __SMBMUSICAPSYNCSERVER_ENABLEALLLOG__
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber24;
_LIT(KServiceGetSongLimitInfoCompletionGetSongLimitInfo01, "SyncServerContentsServiceGetSongLimitInfo::CompletionGetSongLimitInfo() Limitaion:%d Condition:%d SongId:%016lx IsExistCpInfo:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelLow, KServiceGetSongLimitInfoCompletionGetSongLimitInfo01,
iLimitInfo.iLimitation,
iLimitInfo.iLimitCondition,
iLimitInfo.iSongId,
iLimitInfo.iIsExistCpInfo);
#endif
// 庢摼偟偨惂尷忣曬傪彂偒弌偡
TPckg<TSmbMusicAPSyncEngineLimitInfo> pkg(iLimitInfo);
TInt result = iRMessage.Write(KSmbMusicAPSyncEngineMsgOut1, pkg);
if (result != KErrNone)
{ // 彂偒崬傒偵幐攕
TUint32 logCode = EMusicAPSyncServerClassNumber_ContentsServiceGetSongLimitInfo | EMusicAPSyncServerLocationNumber25;
_LIT(KServiceGetSongLimitInfoCompletionGetSongLimitInfo02, "SyncServerContentsServiceGetSongLimitInfo::CompletionGetSongLimitInfo Message Write Error:%d");
SmbMusicAPSyncServerLog(iRLog, logCode, ELogLevelNormal, KServiceGetSongLimitInfoCompletionGetSongLimitInfo02, result);
}
return result;
}
// end of SmbMusicAPSyncServerContentsServiceGetSongLimitInfo.cpp
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -