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

#include <NetworkData.h>

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

Public 멤버 함수

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

Public 속성

int32 correct_answer_index = 0
 
int32 dificulity = 0
 
FWordData full_data
 
int32 index = 0
 
int32 room_id = 0
 
TArray< FScenarioTargetDatatarget_data
 
TArray< uint8 > voice_data
 
FWordData word_data1
 
FWordData word_data2
 

상세한 설명

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

멤버 함수 문서화

◆ GetCorrectAnswerData()

FScenarioTargetData FResponseListenScenario::GetCorrectAnswerData ( ) const

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

1059{
1061}
TArray< FScenarioTargetData > target_data

다음을 참조함 : correct_answer_index, target_data.

다음에 의해서 참조됨 : UPopup_Result::InitWrongList().

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

◆ GetWord1List()

TArray< FString > FResponseListenScenario::GetWord1List ( ) const

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

1029{
1030 TSet<FString> UniqueSet;
1031
1032 for (const FScenarioTargetData& TargetData : target_data)
1033 {
1034 if (!TargetData.word1.name.IsEmpty())
1035 {
1036 UniqueSet.Add(TargetData.word1.name);
1037 }
1038 }
1039
1040 return UniqueSet.Array();
1041}
Scenario 타겟 데이터입니다.

다음을 참조함 : target_data.

◆ GetWord2List()

TArray< FString > FResponseListenScenario::GetWord2List ( ) const

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

1044{
1045 TSet<FString> UniqueSet;
1046
1047 for (const FScenarioTargetData& TargetData : target_data)
1048 {
1049 if (!TargetData.word2.name.IsEmpty())
1050 {
1051 UniqueSet.Add(TargetData.word2.name);
1052 }
1053 }
1054
1055 return UniqueSet.Array();
1056}

다음을 참조함 : target_data.

◆ PrintData()

void FResponseListenScenario::PrintData ( ) const

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

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

1017{
1018 FString OutputString;
1019 FJsonObjectConverter::UStructToJsonObjectString(
1020 *this,
1021 OutputString,
1022 0,
1023 0
1024 );
1025 NETWORK_LOG( TEXT("[RES] %s"), *OutputString);
1026}
#define NETWORK_LOG(fmt,...)

다음을 참조함 : NETWORK_LOG.

◆ SetFromHttpResponse()

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

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

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

931{
932 if (!Response.IsValid())
933 {
934 return;
935 }
936
937 FString JsonString = Response->GetContentAsString();
938 TSharedPtr<FJsonObject> JsonObject;
939 TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(JsonString);
940
941 if (FJsonSerializer::Deserialize(Reader, JsonObject) && JsonObject.IsValid())
942 {
943 index = JsonObject->GetIntegerField(TEXT("index"));
944 dificulity = JsonObject->GetIntegerField(TEXT("dificulity"));
945 room_id = JsonObject->GetIntegerField(TEXT("room_id"));
946 correct_answer_index = JsonObject->GetIntegerField(TEXT("correct_answer_index"));
947
948 // target_data 배열 파싱
949 const TArray<TSharedPtr<FJsonValue>>* TargetDataArray;
950 if (JsonObject->TryGetArrayField(TEXT("target_data"), TargetDataArray))
951 {
952 for (const auto& Item : *TargetDataArray)
953 {
954 TSharedPtr<FJsonObject> TargetObj = Item->AsObject();
955 if (TargetObj.IsValid())
956 {
957 FScenarioTargetData TargetItem;
958
959 // word1 파싱
960 if (TargetObj->HasTypedField<EJson::Object>(TEXT("word1")))
961 {
962 TSharedPtr<FJsonObject> Word1Obj = TargetObj->GetObjectField(TEXT("word1"));
963 if (Word1Obj.IsValid())
964 {
965 TargetItem.word1.name = Word1Obj->GetStringField(TEXT("name"));
966 TargetItem.word1.code = Word1Obj->GetStringField(TEXT("code"));
967 }
968 }
969
970 // word2 파싱
971 if (TargetObj->HasTypedField<EJson::Object>(TEXT("word2")))
972 {
973 TSharedPtr<FJsonObject> Word2Obj = TargetObj->GetObjectField(TEXT("word2"));
974 if (Word2Obj.IsValid())
975 {
976 TargetItem.word2.name = Word2Obj->GetStringField(TEXT("name"));
977 TargetItem.word2.code = Word2Obj->GetStringField(TEXT("code"));
978 }
979 }
980
981 target_data.Add(TargetItem);
982 }
983 }
984 }
985
986 // word_data1 파싱
987 if (JsonObject->HasTypedField<EJson::Object>(TEXT("word_data1")))
988 {
989 TSharedPtr<FJsonObject> WordData1Obj = JsonObject->GetObjectField(TEXT("word_data1"));
990 FJsonObjectConverter::JsonObjectToUStruct(WordData1Obj.ToSharedRef(), FWordData::StaticStruct(), &word_data1);
991 }
992
993 // word_data2 파싱
994 if (JsonObject->HasTypedField<EJson::Object>(TEXT("word_data2")))
995 {
996 TSharedPtr<FJsonObject> WordData2Obj = JsonObject->GetObjectField(TEXT("word_data2"));
997 FJsonObjectConverter::JsonObjectToUStruct(WordData2Obj.ToSharedRef(), FWordData::StaticStruct(), &word_data2);
998 }
999
1000 // full_data 파싱
1001 if (JsonObject->HasTypedField<EJson::Object>(TEXT("full_data")))
1002 {
1003 TSharedPtr<FJsonObject> FullDataObj = JsonObject->GetObjectField(TEXT("full_data"));
1004 FJsonObjectConverter::JsonObjectToUStruct(FullDataObj.ToSharedRef(), FWordData::StaticStruct(), &full_data);
1005 }
1006
1007 // voice data 파싱
1008 FString VoiceDataString;
1009 if (JsonObject->TryGetStringField(TEXT("voice_data"), VoiceDataString))
1010 {
1011 FBase64::Decode(VoiceDataString, voice_data);
1012 }
1013 }
1014}
TArray< uint8 > voice_data
FString code
FString name

다음을 참조함 : FWordInfo::code, correct_answer_index, dificulity, full_data, index, FWordInfo::name, room_id, target_data, voice_data, FScenarioTargetData::word1, FScenarioTargetData::word2, word_data1, word_data2.

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

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

멤버 데이터 문서화

◆ correct_answer_index

int32 FResponseListenScenario::correct_answer_index = 0

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

다음에 의해서 참조됨 : AFoodHolder::CheckFood(), AFoodHolder::CheckPartialAnswer(), GetCorrectAnswerData(), SetFromHttpResponse().

◆ dificulity

int32 FResponseListenScenario::dificulity = 0

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

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

◆ full_data

FWordData FResponseListenScenario::full_data

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

다음에 의해서 참조됨 : ALingoGameState::OnRep_ListenScenarioData(), SetFromHttpResponse().

◆ index

int32 FResponseListenScenario::index = 0

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

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

◆ room_id

int32 FResponseListenScenario::room_id = 0

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

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

◆ target_data

◆ voice_data

TArray<uint8> FResponseListenScenario::voice_data

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

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

◆ word_data1

FWordData FResponseListenScenario::word_data1

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

다음에 의해서 참조됨 : ALingoGameState::OnRep_ListenScenarioData(), SetFromHttpResponse().

◆ word_data2

FWordData FResponseListenScenario::word_data2

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

다음에 의해서 참조됨 : ALingoGameState::OnRep_ListenScenarioData(), SetFromHttpResponse().


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