From: qwerty2501 Date: Sat, 10 Mar 2012 14:45:55 +0000 (+0900) Subject: 見対応のエラーメッセージ対応 X-Git-Tag: v0.102^0 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c982291e5417f8acb4adbb0b23ac89b2e8aca352;p=nlite%2Fnlite.git 見対応のエラーメッセージ対応 見確認APIエラー発生時の処理を修正 --- diff --git a/nlib/nlib.h b/nlib/nlib.h index d84b4eb..20b8444 100644 --- a/nlib/nlib.h +++ b/nlib/nlib.h @@ -235,9 +235,7 @@ public: } -#ifdef __cplusplus -extern "C" { -#endif + /// @@ -482,10 +480,6 @@ extern "C" { -#ifdef __cplusplus -} -#endif - #pragma comment(lib,"Wininet.lib") diff --git a/nlib/nlib_common.cpp b/nlib/nlib_common.cpp index fe44ffd..3a02236 100644 --- a/nlib/nlib_common.cpp +++ b/nlib/nlib_common.cpp @@ -228,9 +228,13 @@ static INLINE VOID Parser_Finalize(){ goto networkerr; } + try{ + rslt = XMLParse(userData,recvBuffer,startElementEvent,endElementEvent,characterDataEvent); + }catch (nlib::Exception &e){ - rslt = XMLParse(userData,recvBuffer,startElementEvent,endElementEvent,characterDataEvent); - + free(buffer); + throw e; + } if(rslt != NLIB_ERR_OK){ goto end; @@ -249,4 +253,6 @@ networkerr: rslt = NLIB_FAILED_CONNECT; goto end; + + } \ No newline at end of file diff --git a/nlib/nlib_define.h b/nlib/nlib_define.h index 6a7d47a..9228167 100644 --- a/nlib/nlib_define.h +++ b/nlib/nlib_define.h @@ -204,7 +204,8 @@ ///¶Žå‚Å‚Í‚È‚¢ #define NLIB_ERR_YOUARE_NOTOWNER ((NLIB_RESULT)43) - +///ƒ†[ƒU[•ú‘—‚ª–žˆõ +#define NLIB_ERR_GETPLAYERSTATUS_USERLIVESLOTFULL ((NLIB_RESULT)44) diff --git a/nlib/nlib_errorMessage.cpp b/nlib/nlib_errorMessage.cpp index f13ea46..1363dc0 100644 --- a/nlib/nlib_errorMessage.cpp +++ b/nlib/nlib_errorMessage.cpp @@ -143,6 +143,9 @@ DECLARE_NLIB_ERROR_MESSAGE(NLIB_ERR_STREAM_IS_NULL,TEXT(" ///NLIB_ERR_YOUARE_NOTOWNER DECLARE_NLIB_ERROR_MESSAGE(NLIB_ERR_YOUARE_NOTOWNER,TEXT("‚ ‚È‚½‚͐¶Žå‚Å‚Í‚ ‚è‚Ü‚¹‚ñ")); +///NLIB_ERR_GETPLAYERSTATUS_USERLIVESLOTFULL +DECLARE_NLIB_ERROR_MESSAGE(NLIB_ERR_GETPLAYERSTATUS_USERLIVESLOTFULL,TEXT("ƒ†[ƒU¶•ú‘—‚ª–žˆõ‚Å‚·")); + #define NLIB_ERRMESSAGE_TABLE_START(c) switch(c){ @@ -205,6 +208,7 @@ LPCTSTR NLIB_GetErrorMessage(NLIB_RESULT rsltCode){ NLIB_ERRMESSAGE_CASE(errmes,NLIB_HEARTBEAT_FAILED_CONNECT) NLIB_ERRMESSAGE_CASE(errmes,NLIB_ERR_STREAM_IS_NULL) NLIB_ERRMESSAGE_CASE(errmes,NLIB_ERR_YOUARE_NOTOWNER) + NLIB_ERRMESSAGE_CASE(errmes,NLIB_ERR_GETPLAYERSTATUS_USERLIVESLOTFULL) NLIB_ERRMESSAGE_TABLE_END() diff --git a/nlib/nlib_nicoLive.cpp b/nlib/nlib_nicoLive.cpp index da6a41b..728b185 100644 --- a/nlib/nlib_nicoLive.cpp +++ b/nlib/nlib_nicoLive.cpp @@ -542,14 +542,22 @@ NLIB_RESULT NicoLiveStream_connect(NicoLiveStream_P self,NicoVideoAuth_P nicoVid } - + //ƒvƒŒƒCƒ„[ƒXƒe[ƒ^ƒXŽæ“¾ EnterCriticalSection(&self->sessionManager.cs); - rslt = GetPlayerStatus(&self->playerStatus,self->userSession,self->sessionManager.getPlayerStatusSession); - + try{ + rslt = GetPlayerStatus(&self->playerStatus,self->userSession,self->sessionManager.getPlayerStatusSession); + }catch (nlib::Exception &e){ + LeaveCriticalSection(&self->sessionManager.cs); + throw e; + } LeaveCriticalSection(&self->sessionManager.cs); + + + + if(rslt != NLIB_ERR_OK){ goto connecterr; diff --git a/nlib/nlib_xmlHandler.cpp b/nlib/nlib_xmlHandler.cpp index 7242d79..77acda0 100644 --- a/nlib/nlib_xmlHandler.cpp +++ b/nlib/nlib_xmlHandler.cpp @@ -167,8 +167,12 @@ static INLINE NLIB_RESULT convToResultCode(LPCTSTR pszData,UINT nLength){ rslt = NLIB_ERR_GETPLAYERSTATUS_BLOCK_NOW_COUNT_OVERFLOW; + }else if(_tcsncmp(pszData,TEXT("userliveslotfull"),nLength) == 0){ + + rslt = NLIB_ERR_GETPLAYERSTATUS_USERLIVESLOTFULL; + }else { - std::wstring errmessage(TEXT("Œ©Šm”F‚̃vƒŒƒCƒ„[ƒXƒe[ƒ^ƒXƒGƒ‰[:")); + std::wstring errmessage(TEXT("–¢Šm”F‚̃vƒŒƒCƒ„[ƒXƒe[ƒ^ƒXƒGƒ‰[:")); errmessage.append(pszData,nLength); rslt = NLIB_ERR_GETPLAYERSTATUS_UNDEFINED; throw nlib::Exception(errmessage.c_str(),__LINE__,TEXT(__FILE__),TEXT(__FILE__)); @@ -177,6 +181,9 @@ static INLINE NLIB_RESULT convToResultCode(LPCTSTR pszData,UINT nLength){ } + + + return rslt; } diff --git a/nlite.suo b/nlite.suo index 112c5d2..b55cc9e 100644 Binary files a/nlite.suo and b/nlite.suo differ