KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
FResponseEvaluationResult 구조체 참조

Evaluation 결과 응답 구조체입니다. 더 자세히 ...

#include <NetworkData.h>

+ FResponseEvaluationResult에 대한 협력 다이어그램:

Public 멤버 함수

void PrintData () const
 디버그 로그에 응답 내용을 출력합니다.
 
void SetFromHttpResponse (const TSharedPtr< class IHttpResponse, ESPMode::ThreadSafe > &Response)
 HTTP 응답을 파싱해 구조체를 채웁니다.
 

Public 속성

TArray< FScenarioResultscenario_results
 
FTotalResult total_result
 

상세한 설명

Evaluation 결과 응답 구조체입니다.

NetworkData.h 파일의 1340 번째 라인에서 정의되었습니다.

멤버 함수 문서화

◆ PrintData()

void FResponseEvaluationResult::PrintData ( ) const

디버그 로그에 응답 내용을 출력합니다.

NetworkData.cpp 파일의 1388 번째 라인에서 정의되었습니다.

1389{
1390 FString OutputString;
1391 FJsonObjectConverter::UStructToJsonObjectString(
1392 *this,
1393 OutputString,
1394 0,
1395 0
1396 );
1397 NETWORK_LOG( TEXT("[RES] %s"), *OutputString);
1398}
#define NETWORK_LOG(fmt,...)

다음을 참조함 : NETWORK_LOG.

다음에 의해서 참조됨 : UKLingoNetworkSystem::RequestEvaluationResult().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SetFromHttpResponse()

void FResponseEvaluationResult::SetFromHttpResponse ( const TSharedPtr< class IHttpResponse, ESPMode::ThreadSafe > &  Response)

HTTP 응답을 파싱해 구조체를 채웁니다.

NetworkData.cpp 파일의 1311 번째 라인에서 정의되었습니다.

1312{
1313 if (!Response.IsValid())
1314 {
1315 return;
1316 }
1317
1318 FString JsonString = Response->GetContentAsString();
1319 TSharedPtr<FJsonObject> JsonObject;
1320 TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(JsonString);
1321
1322 if (FJsonSerializer::Deserialize(Reader, JsonObject) && JsonObject.IsValid())
1323 {
1324 // total_result 파싱
1325 if (JsonObject->HasTypedField<EJson::Object>(TEXT("total_result")))
1326 {
1327 TSharedPtr<FJsonObject> TotalResultObj = JsonObject->GetObjectField(TEXT("total_result"));
1328 if (TotalResultObj.IsValid())
1329 {
1330 total_result.final_score = TotalResultObj->GetIntegerField(TEXT("final_score"));
1331 total_result.grade = TotalResultObj->GetStringField(TEXT("grade"));
1332 total_result.feedback_summary = TotalResultObj->GetStringField(TEXT("feedback_summary"));
1333 }
1334 }
1335
1336 // scenario_results 배열 파싱
1337 const TArray<TSharedPtr<FJsonValue>>* ScenarioResultsArray;
1338 if (JsonObject->TryGetArrayField(TEXT("scenario_results"), ScenarioResultsArray))
1339 {
1340 for (const auto& Item : *ScenarioResultsArray)
1341 {
1342 TSharedPtr<FJsonObject> ScenarioObj = Item->AsObject();
1343 if (ScenarioObj.IsValid())
1344 {
1345 FScenarioResult ScenarioItem;
1346
1347 // scenario_type 파싱
1348 FString ScenarioTypeStr = ScenarioObj->GetStringField(TEXT("scenario_type"));
1349 if (ScenarioTypeStr == TEXT("READING"))
1350 ScenarioItem.scenario_type = EScenarioType::READING;
1351 else if (ScenarioTypeStr == TEXT("LISTENING"))
1352 ScenarioItem.scenario_type = EScenarioType::LISTENING;
1353 else if (ScenarioTypeStr == TEXT("WRITING"))
1354 ScenarioItem.scenario_type = EScenarioType::WRITING;
1355 else if (ScenarioTypeStr == TEXT("SPEAKING"))
1356 ScenarioItem.scenario_type = EScenarioType::SPEAKING;
1357
1358 // display_name 파싱
1359 ScenarioItem.display_name = ScenarioObj->GetStringField(TEXT("display_name"));
1360
1361 // final_score 파싱
1362 ScenarioItem.final_score = ScenarioObj->GetIntegerField(TEXT("final_score"));
1363
1364 // grade 파싱
1365 ScenarioItem.grade = ScenarioObj->GetStringField(TEXT("grade"));
1366
1367 // feedback_summary 파싱
1368 if (ScenarioObj->HasTypedField<EJson::Object>(TEXT("feedback_summary")))
1369 {
1370 TSharedPtr<FJsonObject> FeedbackObj = ScenarioObj->GetObjectField(TEXT("feedback_summary"));
1371 if (FeedbackObj.IsValid())
1372 {
1373 ScenarioItem.feedback_summary.title = FeedbackObj->GetStringField(TEXT("title"));
1374 ScenarioItem.feedback_summary.message = FeedbackObj->GetStringField(TEXT("message"));
1375 }
1376 }
1377
1378 // action_item 파싱
1379 ScenarioItem.action_item = ScenarioObj->GetStringField(TEXT("action_item"));
1380
1381 scenario_results.Add(ScenarioItem);
1382 }
1383 }
1384 }
1385 }
1386}
TArray< FScenarioResult > scenario_results
시나리오별 결과 구조체입니다.
FFeedbackSummary feedback_summary
EScenarioType scenario_type
FString feedback_summary

다음을 참조함 : FScenarioResult::action_item, FScenarioResult::display_name, FScenarioResult::feedback_summary, FTotalResult::feedback_summary, FScenarioResult::final_score, FTotalResult::final_score, FScenarioResult::grade, FTotalResult::grade, FFeedbackSummary::message, scenario_results, FScenarioResult::scenario_type, FFeedbackSummary::title, total_result.

다음에 의해서 참조됨 : UKLingoNetworkSystem::RequestEvaluationResult().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ scenario_results

TArray<FScenarioResult> FResponseEvaluationResult::scenario_results

NetworkData.h 파일의 1348 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : UPopup_Evaluation::InitPopup(), SetFromHttpResponse(), APopupTesterActor::TestEvaluationPopup().

◆ total_result

FTotalResult FResponseEvaluationResult::total_result

NetworkData.h 파일의 1345 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : UPopup_Evaluation::InitPopup(), SetFromHttpResponse(), APopupTesterActor::TestEvaluationPopup().


이 구조체에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: