httppipeline 완료, mqttPipeline 개발 중. test 코드 작성 필요

This commit is contained in:
logonkhi
2025-06-09 19:29:59 +09:00
parent 4b490d79f4
commit ac3645577a
14 changed files with 2347 additions and 264 deletions

View File

@@ -41,10 +41,19 @@ namespace UVC.Data
// 재귀 호출 제한하기 위한 설정 추가
private int maxRecursionDepth = 10;
private int currentDepth = 0;
private DataMask mask;
/// <summary>
/// 대용량 JSON 데이터를 스트리밍 방식으로 처리할지 여부를 나타내는 속성입니다.
/// </summary>
public bool SupportsStreamParsing { get; internal set; } = true;
/// <summary>
/// 대용량 JSON 스트림을 판단 할때 스트림 길이가 이 값보다 크면 스트리밍 방식으로 처리합니다.
/// </summary>
public int SupportsStreamLength { get; internal set; } = 10000;
/// <summary>
/// DataMapper 클래스의 새 인스턴스를 초기화합니다.
/// </summary>
@@ -116,7 +125,7 @@ namespace UVC.Data
/// </summary>
/// <param name="jsonStream">JSON 데이터 스트림</param>
/// <returns>매핑된 DataObject</returns>
public DataObject MapStream(System.IO.Stream jsonStream)
public DataObject MapObjectStream(System.IO.Stream jsonStream)
{
using (var reader = new Newtonsoft.Json.JsonTextReader(new System.IO.StreamReader(jsonStream)))
{
@@ -126,6 +135,21 @@ namespace UVC.Data
}
}
/// <summary>
/// 대용량 JSON 데이터를 스트리밍 방식으로 매핑합니다.
/// </summary>
/// <param name="jsonStream">JSON 데이터 스트림</param>
/// <returns>매핑된 DataObject</returns>
public DataArray MapArrayStream(System.IO.Stream jsonStream)
{
using (var reader = new Newtonsoft.Json.JsonTextReader(new System.IO.StreamReader(jsonStream)))
{
var serializer = new Newtonsoft.Json.JsonSerializer();
var sourceArray = serializer.Deserialize<JArray>(reader);
return Mapping(sourceArray);
}
}
/// <summary>
/// 객체를 재귀적으로 매핑합니다.
/// </summary>