AcCompleter Resultを返す関数と結果の保持を分離

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@763 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2013-11-18 02:48:39 +00:00
parent 05cf83f264
commit ed19af46ab
2 changed files with 21 additions and 14 deletions

View File

@ -62,35 +62,41 @@ void ActCompleter::Finish()
} }
void ActCompleter::Exec() void ActCompleter::Exec()
{
s_Result = ExecImpl();
}
nn::Result ActCompleter::ExecImpl()
{ {
if(!nn::ac::IsConnected()) if(!nn::ac::IsConnected())
{ {
s_Result = common::InitializeNetwork(); NN_UTIL_RETURN_IF_FAILED(
COMMON_LOGGER_RETURN_VOID_IF_FAILED(s_Result); common::InitializeNetwork());
} }
s_Result = nn::act::InitializeAdmin(); NN_UTIL_RETURN_IF_FAILED(
COMMON_LOGGER_RETURN_VOID_IF_FAILED(s_Result); nn::act::InitializeAdmin());
s_Result = nn::act::CompleteTransfer(); nn::Result result = nn::act::CompleteTransfer();
if(s_Result.IsFailure()) if(result.IsFailure())
{ {
if (nn::act::ResultAccountNotLoaded().Includes(s_Result) || nn::act::ResultAuthenticationError().Includes(s_Result)) if (nn::act::ResultAccountNotLoaded().Includes(result) || nn::act::ResultAuthenticationError().Includes(result))
{ {
// これらは発生する可能性があるので成功で上書きする // これらは発生する可能性があるので無視する
s_Result = nn::ResultSuccess();
} }
else else
{ {
COMMON_LOGGER_RETURN_VOID_IF_FAILED(s_Result); return result;
} }
} }
s_Result = nn::act::FinalizeAdmin(); NN_UTIL_RETURN_IF_FAILED(
COMMON_LOGGER_RETURN_VOID_IF_FAILED(s_Result); nn::act::FinalizeAdmin());
s_Result = common::FinalizeNetwork(); NN_UTIL_RETURN_IF_FAILED(
COMMON_LOGGER_RETURN_VOID_IF_FAILED(s_Result); common::FinalizeNetwork());
return nn::ResultSuccess();
} }
} /* namespace ConsoleRestore */ } /* namespace ConsoleRestore */

View File

@ -34,6 +34,7 @@ public:
private: private:
static void Exec(); static void Exec();
static nn::Result ExecImpl();
static nn::Result s_Result; static nn::Result s_Result;
static const size_t STACK_SIZE = 0x1000; static const size_t STACK_SIZE = 0x1000;
static nn::os::Thread s_Thread; static nn::os::Thread s_Thread;