요청 배치 처리
여러 OBS 명령을 함께 전송해야 할 때, FOBSRequestBatchBuilder 플루언트 API는 이를 단일 배치 요청으로 묶어줍니다. 이는 각 요청을 개별적으로 전송하는 것보다 효율적이며, 실행 순서와 오류 처리 방식을 제어할 수 있습니다.
기본 사용법
원하는 명령을 체인으로 연결하고 Execute()를 호출합니다.
FOBSRequestBatchBuilder::Create(OBSClient)
.SetCurrentProgramScene("Gaming")
.StartRecord()
.SetInputMute("Mic/Aux", false)
.Execute();
콜백 및 옵션과 함께 사용
더 세밀하게 제어하려면 원시 요청을 추가하고, 실행 옵션을 설정하며, 콜백에서 요청별 결과를 받을 수 있습니다.
FOBSRequestBatchBuilder::Create(OBSClient)
.AddRequest("GetSceneList")
.AddRequest("GetInputList")
.HaltOnFailure(true)
.SetExecutionType(EOBSRequestBatchExecutionType::SerialRealtime)
.ExecuteWithCallback([](const FOBSBatchResult& Result) {
for (const auto& SingleResult : Result.Results)
{
// Handle individual results
}
});
실행 유형
EOBSRequestBatchExecutionType은 OBS가 배치를 처리하는 방식을 제어합니다.
| 유형 | 설명 |
|---|---|
SerialRealtime | 요청을 순서대로 하나씩 즉시 처리 |
SerialFrame | 요청을 순서대로 하나씩 프레임 경계에서 처리 |
Parallel | 요청을 동시에 처리(순서 보장 없음) |
배치 처리의 의미
참고: 배치는 단일 전송과 다른 의미를 가집니다. OBS는 결과 배열을 포함하는 하나의 통합 결과를 반환하며, 각 항목에는 고유한 성공 여부/코드/설명이 있습니다. 배치 내에서는 요청별 타임아웃이 없습니다.