iconDreamine
← 목록

Dreamine.Secs.Com

stablev1.0.0

명시적 검증 경계를 제공하는 Dreamine 네이티브 SECS-II·HSMS 통신 런타임.

#dreamine#secs#communication#hsms#runtime
TFM net8.0Package Dreamine.Secs.Com참조 Dreamine.Secs.Abstractions, Dreamine.Communication.Abstractions, Dreamine.Communication.Core, Dreamine.Communication.Sockets
설치 dotnet add package Dreamine.Secs.Com --version 1.0.0

Dreamine.Secs.Com

Dreamine.Secs.Com은 Dreamine 자체 SECS-II / HSMS 1차 통신 구현입니다.

➡️ English Version

구현 범위

  • 정확한 Big Endian 숫자 폭, 중첩 List, 빈 값/다중 값, 완전 소비, Message/깊이/List 개수 제한을 지원하는 네트워크 독립 SECS-II item codec
  • 4바이트 길이 접두사와 10바이트 Header, 부분/연속 frame 및 T8 stream 읽기를 지원하는 HSMS 전용 codec
  • Select, Deselect, Linktest, Reject, Separate, 동시 Select와 잘못된 상태를 처리하는 명시적 NotConnected / ConnectedNotSelected / Selected 상태 머신
  • 세션별 thread-safe System Bytes와 T3, 취소, 중복 검출, 연결 정리를 포함한 동시 Primary/Secondary 상관관계
  • TimeProvider를 주입하는 T5 재연결, T6 Control Transaction, T7 미선택 종료, T8 바이트 간 통신 실패
  • 외부 장비가 필요 없는 단일-session Active/Passive TCP runtime, 공급자 합성, 제한된 진단, loopback 테스트
  • Session까지 전달되는 Frame/Message/깊이/List 제한, Control Header 검증, 직렬 송신, application callback 예외 격리, 개별 transaction 실패 정리
  • 실제로 읽거나 기록한 완전한 송수신 wire frame의 opt-in bounded observation, 연결 epoch, drop 계수 및 capture truncation
  • 완전한 Header를 확보한 경우 Decode 실패와 진단에 선택적으로 제공되는 typed HSMS Header 문맥
  • System Bytes 자동 할당 W0/W1 송신, typed identity/state event 및 정상 dialogue 상관관계를 제공하는 추가 provider-neutral ISecsMessageSession / ISecsMessageSessionProvider 지원
  • exact-before-fallback ownership, 고정 worker, 명시적 drop 계수 및 source/epoch에 결합된 one-shot 응답을 제공하는 bounded 비동기 inbound Primary dispatcher

적용 Revision/조항과 보류 범위는 docs/SEMI_REQUIREMENTS_TRACE.md에 기록했습니다.

공개 샘플과 재사용 Runtime

Active Host와 Passive Equipment 샘플은 위 provider-neutral API와 재사용 가능한 Dreamine.SecsGem.Interop.Runtime 계층을 사용합니다. 기본값은 loopback port 7000, 0이 아닌 Session ID 7, 제한된 연결 2회, 전체 실행 timeout 120초입니다. --once를 지정하면 연결을 1회만 실행합니다.

샘플은 --profile, --template--template-name, --scenario, --log-directory도 받습니다. 저장소의 version-1 fixture는 0이 아닌 Session ID, 샘플 전용 W0 Template, 제한 시간 안의 Connect/Select/Linktest 실행, 지속형 Header-Only JSONL 로그를 보여 줍니다. QUICKSTART_KO.mdfixture 안내를 참고하십시오.

Canonical full workspace 안에서는 sample project가 Dreamine.SecsGem.Interop.Runtime source를 의도적으로 ProjectReference합니다. 게시된 Dreamine.Secs.Com package에는 HSMS runtime이 포함되며 해당 Demo/Workbench project는 포함되지 않습니다. 과거 로컬 1.0.0 산출물에서 게시 package 세트로 전환할 때는 깨끗한 package cache를 사용하십시오.

Transport 결정

범용 Communication 길이 codec은 접두사 형태는 같지만 HSMS Header 검증, 증분 다중 frame, T8을 제공하지 않습니다. sealed 범용 TCP 서버도 선택된 단일 세션과 응답 대상 지정에 필요한 연결별 원시 Stream을 노출하지 않습니다. 따라서 기존 연결 생명주기는 구현하되 Communication public API는 변경하지 않고 SECS 경계 내부에 작은 HSMS 전용 TCP channel을 두었습니다.

Wire 증거 경계

HsmsSessionOptions.WireObservation을 설정하지 않으면 wire observation은 비활성입니다. 활성화하면 HsmsSessionIHsmsWireObservationSource를 통해 하나의 pull reader를 노출하며 protocol 처리는 reader를 기다리지 않습니다. Outbound observation은 Stream에 기록한 encoded byte를, inbound observation은 decode 전에 읽은 완전한 byte를 사용하므로 canonical 재인코딩을 capture된 wire data로 표시하지 않습니다. CapturedBytes는 잘릴 수 있고 sequence 번호의 공백은 queue drop을 뜻하며 부분 Frame은 observation이 아닙니다. Raw Frame에는 민감한 application payload가 포함될 수 있으므로 application data policy에 맞춰 보호·보존·내보내야 합니다.

진단과 로컬 재인코딩 메시지는 문제 분석에 유용하지만 wire observation 또는 외부 counterpart 증거를 대신하지 않습니다.

Session 및 dispatcher 경계

기존 ISecsConnection, ISecsCommunicationProvider, CreateConnection 계약은 변경하지 않았습니다. Typed message session/provider 계약과 CreateSession은 추가 API입니다. exact S/F 등록, fallback, legacy MessageReceived event 순서로 claim합니다. exact W-bit 불일치도 claim하지만 응답할 수 없습니다. Bounded FIFO가 가득 찼거나 종료 중이면 이미 claim한 newest Primary를 drop하고 계수하며 다른 경로로 넘기지 않습니다. 첫 응답 시도는 성공, 실패, 취소와 관계없이 ownership을 소비하고, 허용된 응답은 source session, Session ID, Stream, System Bytes, 선언된 정상 Secondary 및 connection epoch에 결합됩니다.

Provider는 session 생성 시 endpoint, mode, Session ID, role, timer, limit, AutoReconnect, dispatcher 및 wire observation 설정을 복제하고 검증합니다. 이 설정은 live mutable하지 않으므로 변경 시 새 session을 생성합니다. Profile 계층은 validate → diff → recreate 순서로 변경을 적용합니다. 호출별 cancellation은 현재 작업에만 적용합니다. Role은 상위 application/responder policy이며 HSMS 상태 머신이나 Active/Passive TCP 방향을 바꾸지 않습니다.

Primary에는 일반 재시도 정책이 없습니다. Active 재연결 시도는 T5로 분리하고 Passive 연결이 닫히면 추가 backoff 없이 즉시 listen을 재개합니다.

의존성 경계

Dreamine.Secs.Com
    -> Dreamine.Secs.Abstractions
    -> Dreamine.Communication.Abstractions
    -> Dreamine.Communication.Core
    -> Dreamine.Communication.Sockets

로컬 E37.1 규범 문서를 확보하지 못했으므로 E37.1 적합성 주장은 BLOCKED_STANDARD입니다. 외부 Simulator 및 현장 검증은 NOT_RUN입니다. Legacy SECS-I, SML, 인증 및 최신 Revision 적합성 주장은 이 package 경계에서 INTENTIONALLY_EXCLUDED입니다. GEM, GEM300, WPF Monitoring 및 지속형 Workbench 기능은 별도 package 범위이며 Core의 evidence 상태를 바꾸지 않습니다.

라이선스

MIT.

구조 다이어그램

flowchart LR
    App["Application"] --> Session["HsmsSession"]
    Session --> State["HsmsStateMachine"]
    Session --> Tx["Transaction managers"]
    Session --> Codec["HSMS + SECS-II codecs"]
    Session --> Contracts["Dreamine.Secs.Abstractions"]
    Session --> Communication["Communication lifecycle contracts"]
    Session --> Tcp["HSMS-specific TCP channel"]

API 문서

타입

DreamineSecsCommunicationProvider

\if KO Dreamine 자체 HSMS-SS 연결을 공급자 계약에 연결합니다. \endif \if EN Connects the native Dreamine HSMS-SS session to the provider contract. \endif

HsmsControlTransactionManager

\if KO Select/Deselect/Linktest 제어 transaction과 T6를 관리합니다. \endif \if EN Manages Select, Deselect, and Linktest control transactions with T6. \endif

HsmsFrameCodec

\if KO E37-0413 §8의 길이 접두사와 10바이트 헤더를 변환합니다. \endif \if EN Converts the E37-0413 §8 length prefix and ten-byte header. \endif

HsmsFrameCodecOptions

\if KO HSMS frame codec의 크기 제한입니다. \endif \if EN Configures HSMS frame-codec size limits. \endif

HsmsProcessingResult

\if KO 수신 HSMS 메시지의 상태 머신 처리 결과입니다. \endif \if EN Represents the state-machine result of an inbound HSMS message. \endif

HsmsSession

\if KO 단일 HSMS Active 또는 Passive TCP 세션을 합성으로 구현합니다. \endif \if EN Implements one active or passive HSMS TCP session through composition. \endif

HsmsStateMachine

\if KO E37-0413 §5와 §7의 단일 세션 상태 전이를 직렬화합니다. \endif \if EN Serializes the single-session state transitions from E37-0413 §§5 and 7. \endif

HsmsStreamDecoder

\if KO 임의로 분할되거나 연속된 입력에서 완전한 HSMS frame을 추출합니다. \endif \if EN Extracts complete HSMS frames from arbitrarily split or concatenated input. \endif

HsmsTimerScheduler

\if KO TimeProvider로 HSMS 타이머를 결정론적으로 예약합니다. \endif \if EN Schedules HSMS timers deterministically through TimeProvider. \endif

NullSecsDiagnosticSink

\if KO 진단을 폐기하는 기본 sink입니다. \endif \if EN Default sink that discards diagnostics. \endif

PrimaryDispatchClaim

\if KO Primary dispatcher의 claim 결과입니다. \endif \if EN Identifies a Primary dispatcher claim result. \endif

SecsComAssemblyMarker

\if KO Dreamine 자체 SECS 구현 어셈블리를 검색하거나 등록할 때 사용하는 표식입니다. \endif \if EN Marks the assembly boundary used to discover or register the Dreamine native SECS implementation. \endif

SecsItemCodec

\if KO E5-0813 §9 item wire format을 구현하는 순수 codec입니다. \endif \if EN Implements the E5-0813 §9 item wire format without network dependencies. \endif

SecsItemCodecOptions

\if KO SECS-II item codec의 방어 한계를 설정합니다. \endif \if EN Configures defensive limits for the SECS-II item codec. \endif

SecsPrimaryDispatcher

\if KO 고정 worker와 bounded queue로 inbound Primary를 exact/fallback handler에 전달합니다. \endif \if EN Routes inbound primaries to exact/fallback handlers using fixed workers and a bounded queue. \endif

SecsSessionDiagnosticHub

\if KO 기존 진단 sink와 provider-neutral typed 진단 이벤트를 하나의 안전한 경계로 결합합니다. \endif \if EN Combines the legacy diagnostic sink and provider-neutral typed diagnostic event behind one safe boundary. \endif

SecsSystemBytesGenerator

\if KO 세션 범위에서 원자적으로 순환하는 System Bytes를 생성합니다. \endif \if EN Generates atomically wrapping System Bytes within a session. \endif

SecsTransactionCompletionStatus

\if KO Secondary 상관관계 처리 결과입니다. \endif \if EN Identifies the result of secondary-message correlation. \endif

SecsTransactionManager

\if KO 세션별 SECS transaction과 T3 수명을 thread-safe하게 관리합니다. \endif \if EN Manages session-scoped SECS transactions and T3 lifetimes safely across threads. \endif

DreamineSecsCommunicationProvider

#ctor Method

\if KO 기본 localhost:5000 HSMS 설정으로 공급자를 만듭니다. \endif \if EN Creates a provider using default localhost:5000 HSMS settings. \endif

#ctor Method

\if KO 애플리케이션 설정 mapping, 시간 및 진단 경계로 공급자를 만듭니다. \endif \if EN Creates a provider with application option mapping, time, and diagnostics boundaries. \endif

optionsFactory— \if KO HSMS 설정 mapping입니다. \endif \if EN HSMS settings mapper. \endif
timeProvider— \if KO 시간 공급자입니다. \endif \if EN Time provider. \endif
diagnostics— \if KO 진단 sink입니다. \endif \if EN Diagnostic sink. \endif
CreateConnection Method
CreateSession Method
Key Property

HsmsControlTransactionManager

#ctor Method

\if KO 시간 공급자와 진단 sink로 manager를 만듭니다. \endif \if EN Creates a manager with a time provider and diagnostic sink. \endif

timeProvider— \if KO 시간 공급자입니다. \endif \if EN Time provider. \endif
diagnostics— \if KO 진단 sink입니다. \endif \if EN Diagnostic sink. \endif
AbortAll Method

\if KO 연결 오류로 모든 제어 대기를 종료합니다. \endif \if EN Terminates every control waiter with a connection error. \endif

error— \if KO 오류입니다. \endif \if EN Error. \endif
DisposeAsync Method

\if KO manager를 안전하게 해제합니다. \endif \if EN Safely disposes the manager. \endif

RegisterAsync Method

\if KO 응답이 필요한 제어 요청을 등록합니다. \endif \if EN Registers a control request requiring a response. \endif

request— \if KO 요청입니다. \endif \if EN Request. \endif
t6— \if KO T6입니다. \endif \if EN T6. \endif
cancellationToken— \if KO 취소 토큰입니다. \endif \if EN Cancellation token. \endif

반환: \if KO 상관된 응답입니다. \endif \if EN Correlated response. \endif

TryAbort Method

\if KO 특정 제어 transaction만 오류로 종료합니다. \endif \if EN Terminates only the specified control transaction with an error. \endif

systemBytes— \if KO 종료할 System Bytes입니다. \endif \if EN System Bytes to terminate. \endif
error— \if KO 전달할 오류입니다. \endif \if EN Error to deliver. \endif

반환: \if KO transaction을 제거했는지 여부입니다. \endif \if EN Whether a transaction was removed. \endif

TryComplete Method

\if KO 수신 제어 응답으로 transaction 완료를 시도합니다. \endif \if EN Attempts to complete a transaction with an inbound control response. \endif

response— \if KO 응답입니다. \endif \if EN Response. \endif

반환: \if KO 완료 여부입니다. \endif \if EN Whether completion succeeded. \endif

OutstandingCount Property

\if KO 열린 제어 transaction 수입니다. \endif \if EN Gets the open control-transaction count. \endif

HsmsFrameCodec

#ctor Method

\if KO 기본 제한으로 codec을 만듭니다. \endif \if EN Creates a codec with default limits. \endif

#ctor Method

\if KO 지정한 frame 및 item 설정으로 codec을 만듭니다. \endif \if EN Creates a codec with specified frame and item settings. \endif

options— \if KO frame 설정입니다. \endif \if EN Frame settings. \endif
itemCodec— \if KO SECS-II item codec입니다. \endif \if EN SECS-II item codec. \endif
Decode Method

\if KO 접두사를 포함한 완전한 단일 frame을 디코딩합니다. \endif \if EN Decodes one complete frame including its prefix. \endif

frame— \if KO frame입니다. \endif \if EN Frame. \endif

반환: \if KO 메시지입니다. \endif \if EN Message. \endif

Encode Method

\if KO 메시지를 접두사를 포함한 완전한 frame으로 인코딩합니다. \endif \if EN Encodes a message as a complete frame including its prefix. \endif

message— \if KO 메시지입니다. \endif \if EN Message. \endif

반환: \if KO frame byte입니다. \endif \if EN Frame bytes. \endif

ReadAsync Method

\if KO T8을 적용해 Stream에서 한 frame을 읽습니다. 첫 바이트 전 EOF는 null입니다. \endif \if EN Reads one frame with T8 enforcement; EOF before the first byte returns null. \endif

stream— \if KO 원본 stream입니다. \endif \if EN Source stream. \endif
t8— \if KO 바이트 간 제한 시간입니다. \endif \if EN Inter-character timeout. \endif
timeProvider— \if KO 시간 공급자입니다. \endif \if EN Time provider. \endif
cancellationToken— \if KO 취소 토큰입니다. \endif \if EN Cancellation token. \endif

반환: \if KO 메시지 또는 EOF의 null입니다. \endif \if EN Message or null at EOF. \endif

WriteAsync Method

\if KO Stream에 frame을 비동기 기록합니다. \endif \if EN Asynchronously writes a frame to a stream. \endif

stream— \if KO 대상 stream입니다. \endif \if EN Destination stream. \endif
message— \if KO 메시지입니다. \endif \if EN Message. \endif
cancellationToken— \if KO 취소 토큰입니다. \endif \if EN Cancellation token. \endif
MaximumFrameLength Property

\if KO 최대 frame 길이를 가져옵니다. \endif \if EN Gets the maximum frame length. \endif

HeaderLength Field

\if KO HSMS 헤더 크기입니다. \endif \if EN The HSMS header size. \endif

LengthPrefixSize Field

\if KO HSMS 길이 접두사 크기입니다. \endif \if EN The HSMS length-prefix size. \endif

HsmsFrameCodecOptions

Validate Method

\if KO 설정을 검증합니다. \endif \if EN Validates the setting. \endif

MaximumFrameLength Property

\if KO 길이 접두사가 나타내는 최대 바이트 수입니다. \endif \if EN Gets the maximum byte count represented by the length prefix. \endif

HsmsProcessingResult

#ctor Method

\if KO 처리 결과를 만듭니다. \endif \if EN Creates a processing result. \endif

accepted— \if KO 상위 계층 전달 여부입니다. \endif \if EN Whether the message is accepted for upper layers. \endif
response— \if KO 선택적 자동 응답입니다. \endif \if EN Optional automatic response. \endif
closeConnection— \if KO 연결 종료 여부입니다. \endif \if EN Whether to close the connection. \endif
Accepted Property

\if KO 상위 계층 전달 여부입니다. \endif \if EN Gets whether the message is accepted. \endif

CloseConnection Property

\if KO 처리 후 TCP 종료 여부입니다. \endif \if EN Gets whether TCP should be closed after processing. \endif

Response Property

\if KO 자동 응답입니다. \endif \if EN Gets the automatic response. \endif

HsmsSession

#ctor Method

\if KO 설정, 시간 및 진단 경계로 세션을 만듭니다. \endif \if EN Creates a session with settings, time, and diagnostic boundaries. \endif

options— \if KO 세션 설정입니다. \endif \if EN Session settings. \endif
timeProvider— \if KO 시간 공급자입니다. \endif \if EN Time provider. \endif
diagnostics— \if KO 진단 sink입니다. \endif \if EN Diagnostic sink. \endif
AllocateSystemBytes Method

\if KO 열린 transaction과 충돌하지 않는 System Bytes를 할당합니다. \endif \if EN Allocates System Bytes not colliding with an open transaction. \endif

ConnectAsync Method
DeselectAsync Method

\if KO Deselect transaction을 수행합니다. \endif \if EN Performs a Deselect transaction. \endif

cancellationToken— \if KO 취소 토큰입니다. \endif \if EN Cancellation token. \endif
DisconnectAsync Method
DisposeAsync Method

\if KO 세션과 모든 비동기 자원을 안전하게 해제합니다. \endif \if EN Safely disposes the session and all asynchronous resources. \endif

LinktestAsync Method

\if KO Linktest transaction을 수행합니다. \endif \if EN Performs a Linktest transaction. \endif

cancellationToken— \if KO 취소 토큰입니다. \endif \if EN Cancellation token. \endif
ReadWireObservationsAsync Method
RequestAsync Method
SelectAsync Method

\if KO Select transaction을 수행하고 선택 상태가 될 때까지 기다립니다. \endif \if EN Performs a Select transaction and waits until selected. \endif

cancellationToken— \if KO 취소 토큰입니다. \endif \if EN Cancellation token. \endif
SendAsync Method

\if KO 선택된 세션에서 응답을 기다리지 않는 SECS 메시지를 보냅니다. \endif \if EN Sends a SECS message without waiting for a reply in a selected session. \endif

message— \if KO 메시지입니다. \endif \if EN Message. \endif
cancellationToken— \if KO 취소 토큰입니다. \endif \if EN Cancellation token. \endif
SendAsync Method
SendPrimaryAsync Method

\if KO W-bit primary를 보내고 T3 내의 secondary를 기다립니다. \endif \if EN Sends a W-bit primary and waits for its secondary within T3. \endif

message— \if KO primary입니다. \endif \if EN Primary. \endif
cancellationToken— \if KO 취소 토큰입니다. \endif \if EN Cancellation token. \endif

반환: \if KO secondary입니다. \endif \if EN Secondary. \endif

SeparateAsync Method

\if KO Separate.req를 전송하고 TCP 연결을 종료합니다. \endif \if EN Sends Separate.req and closes TCP. \endif

cancellationToken— \if KO 취소 토큰입니다. \endif \if EN Cancellation token. \endif
ConnectionIdentity Property
DroppedWireObservationCount Property
HsmsState Property

\if KO 현재 HSMS protocol 상태입니다. \endif \if EN Gets the current HSMS protocol state. \endif

IsWireObservationEnabled Property
PrimaryDispatcher Property
ProviderKey Property
State Property
DiagnosticReceived Event
MessageReceived Event

\if KO 선택된 세션에서 상위 계층으로 전달되는 SECS 메시지 이벤트입니다. \endif \if EN Raised for SECS messages accepted in a selected session. \endif

StateChanged Event

HsmsStateMachine

#ctor Method

\if KO 선택적 진단 sink로 상태 머신을 만듭니다. \endif \if EN Creates a state machine with an optional diagnostic sink. \endif

diagnostics— \if KO 진단 sink입니다. \endif \if EN Diagnostic sink. \endif
CreateDeselectRequest Method

\if KO 현재 상태에서 Deselect.req를 만듭니다. \endif \if EN Creates Deselect.req in the current state. \endif

systemBytes— \if KO 시스템 바이트입니다. \endif \if EN System bytes. \endif

반환: \if KO 제어 메시지입니다. \endif \if EN Control message. \endif

CreateLinktestRequest Method

\if KO 연결된 상태에서 Linktest.req를 만듭니다. \endif \if EN Creates Linktest.req while connected. \endif

systemBytes— \if KO 시스템 바이트입니다. \endif \if EN System bytes. \endif

반환: \if KO 제어 메시지입니다. \endif \if EN Control message. \endif

CreateSelectRequest Method

\if KO 현재 상태에서 Select.req를 만듭니다. \endif \if EN Creates Select.req in the current state. \endif

systemBytes— \if KO 시스템 바이트입니다. \endif \if EN System bytes. \endif

반환: \if KO 제어 메시지입니다. \endif \if EN Control message. \endif

CreateSeparateRequest Method

\if KO 선택 상태에서 Separate.req를 만들고 미선택 상태로 이동합니다. \endif \if EN Creates Separate.req while selected and moves to not selected. \endif

systemBytes— \if KO 시스템 바이트입니다. \endif \if EN System bytes. \endif

반환: \if KO 제어 메시지입니다. \endif \if EN Control message. \endif

OnTcpConnected Method

\if KO TCP 연결 설정을 반영합니다. \endif \if EN Applies TCP establishment. \endif

OnTcpDisconnected Method

\if KO TCP 연결 종료를 반영합니다. \endif \if EN Applies TCP termination. \endif

Process Method

\if KO 수신 메시지를 현재 상태에 적용합니다. \endif \if EN Applies an inbound message to the current state. \endif

message— \if KO 수신 메시지입니다. \endif \if EN Inbound message. \endif

반환: \if KO 처리 결과입니다. \endif \if EN Processing result. \endif

State Property

\if KO 현재 명시적 상태입니다. \endif \if EN Gets the current explicit state. \endif

HsmsStreamDecoder

#ctor Method

\if KO 지정한 frame codec으로 decoder를 만듭니다. \endif \if EN Creates a decoder with the specified frame codec. \endif

codec— \if KO frame codec입니다. \endif \if EN Frame codec. \endif
Append Method

\if KO 입력 조각을 추가하고 완성된 모든 메시지를 반환합니다. \endif \if EN Appends a chunk and returns every completed message. \endif

data— \if KO 입력 조각입니다. \endif \if EN Input chunk. \endif

반환: \if KO 완성된 메시지입니다. \endif \if EN Completed messages. \endif

Complete Method

\if KO 입력 종료를 표시하고 불완전 frame을 검출합니다. \endif \if EN Marks end of input and detects an incomplete frame. \endif

Reset Method

\if KO 보류 중인 입력을 폐기합니다. \endif \if EN Discards buffered input. \endif

BufferedByteCount Property

\if KO 현재 보류 중인 바이트 수입니다. \endif \if EN Gets the number of currently buffered bytes. \endif

HsmsTimerScheduler

#ctor Method

\if KO 설정과 시간 공급자로 scheduler를 만듭니다. \endif \if EN Creates a scheduler with options and a time provider. \endif

options— \if KO 타이머 설정입니다. \endif \if EN Timer settings. \endif
timeProvider— \if KO 시간 공급자입니다. \endif \if EN Time provider. \endif
GetTimeout Method

\if KO 타이머의 설정 기간을 가져옵니다. \endif \if EN Gets the configured duration of a timer. \endif

kind— \if KO 타이머입니다. \endif \if EN Timer. \endif

반환: \if KO 기간입니다. \endif \if EN Duration. \endif

WaitForExpirationAsync Method

\if KO 취소되거나 만료될 때까지 기다리고 만료 예외를 발생시킵니다. \endif \if EN Waits until cancellation or expiration and throws on expiration. \endif

kind— \if KO 타이머입니다. \endif \if EN Timer. \endif
cancellationToken— \if KO 취소 토큰입니다. \endif \if EN Cancellation token. \endif

NullSecsDiagnosticSink

Emit Method
Instance Property

\if KO 공유 인스턴스입니다. \endif \if EN Gets the shared instance. \endif

SecsItemCodec

#ctor Method

\if KO 기본 제한으로 codec을 만듭니다. \endif \if EN Creates a codec with default limits. \endif

#ctor Method

\if KO 지정한 방어 한계로 codec을 만듭니다. \endif \if EN Creates a codec with specified defensive limits. \endif

options— \if KO 제한 설정입니다. \endif \if EN Limit settings. \endif
Decode Method
Encode Method
Validate Method

SecsItemCodecOptions

Validate Method

\if KO 설정을 검증합니다. \endif \if EN Validates the settings. \endif

MaximumListItemCount Property

\if KO 단일 List에서 허용할 최대 자식 수입니다. \endif \if EN Gets the maximum child count permitted in one List item. \endif

MaximumMessageLength Property

\if KO 최대 인코딩/디코딩 바이트 수입니다. \endif \if EN Gets the maximum encoded or decoded byte count. \endif

MaximumNestingDepth Property

\if KO 허용할 최대 목록 중첩 깊이입니다. \endif \if EN Gets the maximum permitted list nesting depth. \endif

SecsPrimaryDispatcher

#ctor Method

\if KO dispatcher 설정 및 진단 경계로 instance를 만듭니다. \endif \if EN Creates an instance with dispatcher settings and a diagnostic boundary. \endif

Register Method
RegisterFallback Method
StopAsync Method

\if KO future claim을 중지하고 worker drain을 기다립니다. worker 내부 재진입은 자신을 기다리지 않습니다. \endif \if EN Stops future claims and waits for worker drain; worker reentrancy never waits on itself. \endif

TryDispatch Method

\if KO exact 우선, fallback 차선으로 Primary를 claim합니다. 포화 시에도 claim은 유지됩니다. \endif \if EN Claims a primary using exact-first, fallback-second routing. A full queue still retains the claim. \endif

DroppedCount Property

\if KO queue 포화 또는 정지 중 claim된 뒤 버려진 Primary 수입니다. \endif \if EN Gets the number of claimed primaries dropped because the queue was full or stopping. \endif

DroppedPrimaryCount Property

SecsSessionDiagnosticHub

#ctor Method

\if KO 기존 진단 sink와 provider-neutral typed 진단 이벤트를 하나의 안전한 경계로 결합합니다. \endif \if EN Combines the legacy diagnostic sink and provider-neutral typed diagnostic event behind one safe boundary. \endif

Emit Method

\if KO 각 외부 callback 실패를 격리하여 진단을 전달합니다. \endif \if EN Delivers a diagnostic while isolating every external callback failure. \endif

DiagnosticReceived Event

\if KO typed 진단 구독입니다. \endif \if EN Typed diagnostic subscription. \endif

SecsSystemBytesGenerator

#ctor Method

\if KO 초기값 다음 수부터 생성하도록 generator를 만듭니다. \endif \if EN Creates a generator that returns the value after the seed first. \endif

seed— \if KO 초기값입니다. \endif \if EN Initial value. \endif
Next Method

\if KO 다음 32비트 값을 원자적으로 가져옵니다. \endif \if EN Atomically gets the next 32-bit value. \endif

SecsTransactionCompletionStatus

Completed Field

\if KO 열린 transaction을 완료했습니다. \endif \if EN An open transaction was completed. \endif

Duplicate Field

\if KO 최근 완료된 응답의 중복입니다. \endif \if EN The response duplicates a recently completed transaction. \endif

InvalidCorrelation Field

\if KO Session/Stream/Function 상관관계가 맞지 않습니다. \endif \if EN Session/Stream/Function correlation does not match. \endif

UnknownSystemBytes Field

\if KO System Bytes를 알 수 없습니다. \endif \if EN System Bytes are unknown. \endif

SecsTransactionManager

#ctor Method

\if KO manager를 만듭니다. \endif \if EN Creates a manager. \endif

timeProvider— \if KO 결정론적 시간 공급자입니다. \endif \if EN Deterministic time provider. \endif
generator— \if KO System Bytes generator입니다. \endif \if EN System Bytes generator. \endif
diagnostics— \if KO 진단 sink입니다. \endif \if EN Diagnostic sink. \endif
recentCapacity— \if KO 중복 검출 보관 수입니다. \endif \if EN Recent-completion capacity. \endif
AbortAll Method

\if KO 연결 종료 오류로 모든 대기를 정리합니다. \endif \if EN Completes all waiters with a connection-termination error. \endif

error— \if KO 전달할 오류입니다. \endif \if EN Error to deliver. \endif
AllocateSystemBytes Method

\if KO 열린/최근 완료 값과 충돌하지 않는 다음 System Bytes를 할당합니다. \endif \if EN Allocates the next System Bytes not colliding with open or recent transactions. \endif

DisposeAsync Method

\if KO 모든 대기를 취소하고 manager를 해제합니다. \endif \if EN Cancels all waiters and disposes the manager. \endif

RegisterPrimaryAsync Method

\if KO W-bit primary를 등록하고 Secondary 또는 T3/취소를 기다립니다. \endif \if EN Registers a W-bit primary and waits for its secondary, T3, or cancellation. \endif

primary— \if KO primary 메시지입니다. \endif \if EN Primary message. \endif
t3— \if KO T3 기간입니다. \endif \if EN T3 duration. \endif
cancellationToken— \if KO 호출자 취소입니다. \endif \if EN Caller cancellation. \endif

반환: \if KO 상관된 secondary입니다. \endif \if EN Correlated secondary. \endif

RegisterPrimaryDeferred Method

\if KO 선언된 인접 정상 Secondary만 허용하는 provider-neutral W1 transaction을 등록합니다. \endif \if EN Registers a provider-neutral W1 transaction that accepts only its declared adjacent normal secondary. \endif

TryAbort Method

\if KO 특정 transaction만 오류로 종료합니다. \endif \if EN Terminates only the specified transaction with an error. \endif

systemBytes— \if KO 종료할 System Bytes입니다. \endif \if EN System Bytes to terminate. \endif
error— \if KO 전달할 오류입니다. \endif \if EN Error to deliver. \endif

반환: \if KO transaction을 제거했는지 여부입니다. \endif \if EN Whether a transaction was removed. \endif

TryComplete Method

\if KO 수신 Secondary로 열린 transaction을 완료합니다. \endif \if EN Completes an open transaction with an inbound secondary. \endif

secondary— \if KO secondary 메시지입니다. \endif \if EN Secondary message. \endif

반환: \if KO 상관관계 결과입니다. \endif \if EN Correlation result. \endif

OutstandingCount Property

\if KO 현재 열린 transaction 수입니다. \endif \if EN Gets the current open-transaction count. \endif