Files
syn-chat-bot/.venv/lib/python3.9/site-packages/qh3/h3/events.py
Hyungi Ahn c2257d3a86 fix: 포트 충돌 회피 — note_bridge 8098, intent_service 8099
Jellyfin(8096), OrbStack(8097) 포트 충돌으로 변경.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 13:53:55 +09:00

117 lines
2.4 KiB
Python

from __future__ import annotations
from dataclasses import dataclass
from typing import List, Tuple
Headers = List[Tuple[bytes, bytes]]
class H3Event:
"""
Base class for HTTP/3 events.
"""
@dataclass
class DataReceived(H3Event):
"""
The DataReceived event is fired whenever data is received on a stream from
the remote peer.
"""
data: bytes
"The data which was received."
stream_id: int
"The ID of the stream the data was received for."
stream_ended: bool
"Whether the STREAM frame had the FIN bit set."
push_id: int | None = None
"The Push ID or `None` if this is not a push."
@dataclass
class DatagramReceived(H3Event):
"""
The DatagramReceived is fired whenever a datagram is received from the
the remote peer.
"""
data: bytes
"The data which was received."
flow_id: int
"The ID of the flow the data was received for."
@dataclass
class InformationalHeadersReceived(H3Event):
"""
This event is fired whenever an informational response has been caught inflight!
The stream cannot be ended there.
"""
headers: Headers
"The headers."
stream_id: int
"The ID of the stream the headers were received for."
@dataclass
class HeadersReceived(H3Event):
"""
The HeadersReceived event is fired whenever headers are received.
"""
headers: Headers
"The headers."
stream_id: int
"The ID of the stream the headers were received for."
stream_ended: bool
"Whether the STREAM frame had the FIN bit set."
push_id: int | None = None
"The Push ID or `None` if this is not a push."
@dataclass
class PushPromiseReceived(H3Event):
"""
The PushedStreamReceived event is fired whenever a pushed stream has been
received from the remote peer.
"""
headers: Headers
"The request headers."
push_id: int
"The Push ID of the push promise."
stream_id: int
"The Stream ID of the stream that the push is related to."
@dataclass
class WebTransportStreamDataReceived(H3Event):
"""
The WebTransportStreamDataReceived is fired whenever data is received
for a WebTransport stream.
"""
data: bytes
"The data which was received."
stream_id: int
"The ID of the stream the data was received for."
stream_ended: bool
"Whether the STREAM frame had the FIN bit set."
session_id: int
"The ID of the session the data was received for."