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

#include <NetworkData.h>

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

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
 
FWordData word_data1
 
FWordData word_data2
 

상세한 설명

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

멤버 함수 문서화

◆ GetCorrectAnswerData()

FScenarioTargetData FResponseReadScenario::GetCorrectAnswerData ( ) const

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

849{
851}
TArray< FScenarioTargetData > target_data

다음을 참조함 : correct_answer_index, target_data.

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

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

◆ GetWord1List()

TArray< FString > FResponseReadScenario::GetWord1List ( ) const

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

819{
820 TSet<FString> UniqueSet;
821
822 for (const FScenarioTargetData& TargetData : target_data)
823 {
824 if (!TargetData.word1.name.IsEmpty())
825 {
826 UniqueSet.Add(TargetData.word1.name);
827 }
828 }
829
830 return UniqueSet.Array();
831}
Scenario 타겟 데이터입니다.

다음을 참조함 : target_data.

◆ GetWord2List()

TArray< FString > FResponseReadScenario::GetWord2List ( ) const

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

834{
835 TSet<FString> UniqueSet;
836
837 for (const FScenarioTargetData& TargetData : target_data)
838 {
839 if (!TargetData.word2.name.IsEmpty())
840 {
841 UniqueSet.Add(TargetData.word2.name);
842 }
843 }
844
845 return UniqueSet.Array();
846}

다음을 참조함 : target_data.

◆ PrintData()

void FResponseReadScenario::PrintData ( ) const

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

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

807{
808 FString OutputString;
809 FJsonObjectConverter::UStructToJsonObjectString(
810 *this,
811 OutputString,
812 0,
813 0
814 );
815 NETWORK_LOG( TEXT("[RES] %s"), *OutputString);
816}
#define NETWORK_LOG(fmt,...)

다음을 참조함 : NETWORK_LOG.

◆ SetFromHttpResponse()

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

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

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

728{
729 if (!Response.IsValid())
730 {
731 return;
732 }
733
734 FString JsonString = Response->GetContentAsString();
735 TSharedPtr<FJsonObject> JsonObject;
736 TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(JsonString);
737
738 if (FJsonSerializer::Deserialize(Reader, JsonObject) && JsonObject.IsValid())
739 {
740 index = JsonObject->GetIntegerField(TEXT("index"));
741 dificulity = JsonObject->GetIntegerField(TEXT("dificulity"));
742 room_id = JsonObject->GetIntegerField(TEXT("room_id"));
743 correct_answer_index = JsonObject->GetIntegerField(TEXT("correct_answer_index"));
744
745 // target_data 배열 파싱
746 const TArray<TSharedPtr<FJsonValue>>* TargetDataArray;
747 if (JsonObject->TryGetArrayField(TEXT("target_data"), TargetDataArray))
748 {
749 for (const auto& Item : *TargetDataArray)
750 {
751 TSharedPtr<FJsonObject> TargetObj = Item->AsObject();
752 if (TargetObj.IsValid())
753 {
754 FScenarioTargetData TargetItem;
755
756 // word1 파싱
757 if (TargetObj->HasTypedField<EJson::Object>(TEXT("word1")))
758 {
759 TSharedPtr<FJsonObject> Word1Obj = TargetObj->GetObjectField(TEXT("word1"));
760 if (Word1Obj.IsValid())
761 {
762 TargetItem.word1.name = Word1Obj->GetStringField(TEXT("name"));
763 TargetItem.word1.code = Word1Obj->GetStringField(TEXT("code"));
764 }
765 }
766
767 // word2 파싱
768 if (TargetObj->HasTypedField<EJson::Object>(TEXT("word2")))
769 {
770 TSharedPtr<FJsonObject> Word2Obj = TargetObj->GetObjectField(TEXT("word2"));
771 if (Word2Obj.IsValid())
772 {
773 TargetItem.word2.name = Word2Obj->GetStringField(TEXT("name"));
774 TargetItem.word2.code = Word2Obj->GetStringField(TEXT("code"));
775 }
776 }
777
778 target_data.Add(TargetItem);
779 }
780 }
781 }
782
783 // word_data1 파싱
784 if (JsonObject->HasTypedField<EJson::Object>(TEXT("word_data1")))
785 {
786 TSharedPtr<FJsonObject> WordData1Obj = JsonObject->GetObjectField(TEXT("word_data1"));
787 FJsonObjectConverter::JsonObjectToUStruct(WordData1Obj.ToSharedRef(), FWordData::StaticStruct(), &word_data1);
788 }
789
790 // word_data2 파싱
791 if (JsonObject->HasTypedField<EJson::Object>(TEXT("word_data2")))
792 {
793 TSharedPtr<FJsonObject> WordData2Obj = JsonObject->GetObjectField(TEXT("word_data2"));
794 FJsonObjectConverter::JsonObjectToUStruct(WordData2Obj.ToSharedRef(), FWordData::StaticStruct(), &word_data2);
795 }
796
797 // full_data 파싱
798 if (JsonObject->HasTypedField<EJson::Object>(TEXT("full_data")))
799 {
800 TSharedPtr<FJsonObject> FullDataObj = JsonObject->GetObjectField(TEXT("full_data"));
801 FJsonObjectConverter::JsonObjectToUStruct(FullDataObj.ToSharedRef(), FWordData::StaticStruct(), &full_data);
802 }
803 }
804}
FString code
FString name

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

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

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

멤버 데이터 문서화

◆ correct_answer_index

int32 FResponseReadScenario::correct_answer_index = 0

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

다음에 의해서 참조됨 : GetCorrectAnswerData(), AWeightSwitch::OnBeginOverlap(), ALuggageHolder::OnBoxOverlapBegin(), SetFromHttpResponse().

◆ dificulity

int32 FResponseReadScenario::dificulity = 0

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

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

◆ full_data

FWordData FResponseReadScenario::full_data

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

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

◆ index

int32 FResponseReadScenario::index = 0

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

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

◆ room_id

int32 FResponseReadScenario::room_id = 0

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

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

◆ target_data

TArray<FScenarioTargetData> FResponseReadScenario::target_data

◆ word_data1

FWordData FResponseReadScenario::word_data1

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

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

◆ word_data2

FWordData FResponseReadScenario::word_data2

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

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


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