KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UKLingoNetworkSystem.h
이 파일의 문서화 페이지로 가기
1// Copyright (c) 2025 Doppleddiggong. All rights reserved.
2// Unauthorized copying, modification, or distribution of this file,
3// via any medium is strictly prohibited. Proprietary and confidential.
4
9#pragma once
10
11#include "CoreMinimal.h"
12#include "NetworkData.h"
13#include "Macro.h"
14#include "ENetworkLogType.h"
15#include "Interfaces/IHttpRequest.h"
16#include "Interfaces/IHttpResponse.h"
17#include "Subsystems/GameInstanceSubsystem.h"
18#include "UKLingoNetworkSystem.generated.h"
19
27UCLASS()
28class ONEPIECE_API UKLingoNetworkSystem : public UGameInstanceSubsystem
29{
30 GENERATED_BODY()
31
32public:
34
41 virtual void Initialize(FSubsystemCollectionBase& Collection) override;
42
49 virtual void Deinitialize() override;
50
59 void RequestUserRegister(const FString& UserName, FResponseUserRegisterDelegate InDelegate);
60
69 void RequestUserToken(const FString& UserName, FResponseUserTokenDelegate InDelegate);
70
78 void RequestUserMe(FResponseUserMeDelegate InDelegate);
79
88 void RequestListenAudio(const FString& AudioText, FResponseListenAudioDelegate InDelegate);
89
99 void RequestSpeakingJudges( const FString& Question, const FString& AudioPath, FResponseSpeakingJudesDelegate InDelegate);
100
108 void RequestInterviewHello(FResponseInterviewHelloDelegate InDelegate);
109
118 void RequestInterviewAnswer( const FRequestInterviewAnswer& Answer, FResponseInterviewAnswerDelegate InDelegate);
119
127 void RequestReadScenario(FResponseReadScenarioDelegate InDelegate);
128
137 void RequestReadResult(const FRequestReadResult& Result, FResponseReadResultDelegate InDelegate);
138
146 void RequestListenScenario(FResponseListenScenarioDelegate InDelegate);
147
156 void RequestListenResult(const FRequestListenResult& Result, FResponseListenResultDelegate InDelegate);
157
165 void RequestWriteQuestions(FResponseWriteQuestionDelegate InDelegate);
166
176 void RequestWriteSubmit(const TArray<FString>& ImagePathArray, TArray<FString> InTargetText, FResponseWriteSubmitDelegate InDelegate);
177
186 void RequestWriteResult(const FRequestWriteResult& Result, FResponseWriteResultDelegate InDelegate);
187
195 void RequestSpeakScenario(FResponseSpeakScenarioDelegate InDelegate);
196
205 void RequestSpeakResult(const FRequestSpeakResult& Result, FResponseSpeakResultDelegate InDelegate);
206
215 void RequestEvaluationResult(int32 RoomId, FResponseEvaluationResultDelegate InDelegate);
216
226 void RequestChatQuestion(const FString& Context, const FString& Question, FResponseChatAnswersDelegate InDelegate);
227
237 void RequestChatAudio(const FString& Context, const FString& AudioPath, FResponseChatAnswersDelegate InDelegate);
238
248 void RequestDailyQuestion(const FString& Context, const FString& Question, FResponseChatDailysDelegate InDelegate);
249
259 void RequestDailyAudio(const FString& Context, const FString& AudioPath, FResponseChatDailysDelegate InDelegate);
260
261private:
266 static void LogNetwork( ENetworkLogType InLogType, const FString& URL, const FString& Body = TEXT(""));
267
269 static const TCHAR* GetLogPrefix(ENetworkLogType InLogType);
270
271 static bool IsResSuccess(const int InCode);
272
276 void ShowNetworkErrorPopup(int32 ResponseCode, const FString& ResponseContent);
277
280 void AddNetworkWaitCount(int Value);
281
284 void ShowLoadingCircle(bool bShow);
285
286
287 TSharedRef<IHttpRequest, ESPMode::ThreadSafe> SetupHttpRequest( const FString& Url, const FString& Verb );
288
289private:
291 int NetworkWaitCount = 0;
292
295};
네트워크 로그 메시지 구분자 열거형을 선언합니다.
ENetworkLogType
네트워크 요청/응답 로그를 구분하는 타입입니다.
YiSan 전반에서 사용하는 공용 인터페이스를 선언합니다.
네트워크 요청과 응답에 사용되는 구조체 및 설정을 정의합니다.
KLingo 서버와의 HTTP 요청을 중재하는 게임 인스턴스 서브시스템입니다.
DEFINE_SUBSYSTEM_GETTER_INLINE(UKLingoNetworkSystem)
FString access_token
인증 토큰 (로그인 후 저장)