C++ 공개 interface¶
C++ 계약 목차 | 언어별 interface 목차 | 이전: C++ 시스템 구조 | 다음: C++ HTTP Hosting
이 디렉토리는 ZLink Framework server의 C++ public interface를 기능별로 소유한다. 공통 Framework spec이 동작을 정하고 다음 문서가 namespace, type, member, template constraint와 기본값을 고정한다.
| 문서 | 소유하는 계약과 installed public header |
|---|---|
| Common runtime | dispatch, errors, messaging, codecs와 workers의 공통 public type을 정의한다. |
| Configuration과 host | configuration, http, host, DI, module과 planned maintenance·rolling update를 구분하는 relocation 및 shutdown lifecycle public interface를 정의한다. |
| Channel messaging | channels와 handlers, topology builder, Object role·capacity·weight와 automatic RID 계약을 정의한다. |
| Spots | Global SpotId·SpotRef, relocation adapter와 callback, Instance Spot cold activation과 User Spot manager를 정의한다. |
| Actors | Global ActorId·ActorRef, relocation adapter, ID-only messaging, manager create와 mutation·bind를 정의한다. |
| STREAM session | streams의 packet session과 Actor가 소유한 bound session의 연동 interface를 정의한다. |
| Location·Relocation Store·Redis | opaque atomic Location Store, immutable Relocation Store, operational query와 공식 Redis provider를 정의한다. |
| Monitoring | application이 사용하는 runtime status·snapshot·health와 structured logging 경계를 정의한다. |
zlink/framework.hpp는 위 installed header를 모으는 facade다. Application-facing API에는 Core service
handle, claim, receive batch, reply token, service liveness command와 authority/relocation 내부 transaction을
노출하지 않는다. Framework runtime은 설치된 C++ binding의 public raw socket API만 사용한다.
Public generation, revision, epoch와 sequence ordinal의 유효 범위는
1..9223372036854775807이다. C++ type이 std::uint64_t여도 이 범위를 넓히지 않는다. 최대값에 도달하면
Framework는 wrap이나 값 재사용 없이 terminal exhaustion으로 처리한다. 0은 값이 확정되지 않은 상태를
표현하도록 해당 계약이 명시한 경우에만 사용한다.
공개 표면¶
이 문서 집합에 선언한 Channel, Spot, Actor, STREAM, handler, builder, host, DI, maintenance와 state relocation member가 C++ 11.0 public contract다. Core service handle, dispatch record와 service liveness interval·deadline은 이 계약에 포함하지 않는다.
C++ 계약 목차 | 언어별 interface 목차 | 이전: C++ 시스템 구조 | 다음: C++ HTTP Hosting