build 059.11: add runtime command models
This commit is contained in:
82
app/src/market_data/acquisition/runtime/runtime_commands.py
Normal file
82
app/src/market_data/acquisition/runtime/runtime_commands.py
Normal file
@@ -0,0 +1,82 @@
|
||||
# app/src/market_data/acquisition/runtime/runtime_commands.py
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
|
||||
from src.market_data.acquisition.runtime.transport_messages import (
|
||||
TransportBinaryMessage,
|
||||
TransportTextMessage,
|
||||
)
|
||||
|
||||
|
||||
TransportMessage = TransportTextMessage | TransportBinaryMessage
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class ConnectCommand:
|
||||
"""
|
||||
Команда на открытие транспортного соединения.
|
||||
|
||||
Команда выражает намерение Runtime и не выполняет подключение
|
||||
самостоятельно.
|
||||
"""
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class DisconnectCommand:
|
||||
"""
|
||||
Команда на закрытие транспортного соединения.
|
||||
|
||||
Команда не содержит сетевой логики и не управляет транспортом
|
||||
самостоятельно.
|
||||
"""
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class SubscribeCommand:
|
||||
"""
|
||||
Команда на регистрацию и отправку транспортной подписки.
|
||||
|
||||
subscription_key является стабильным идентификатором подписки,
|
||||
используемым будущим Subscription Manager.
|
||||
|
||||
message содержит уже подготовленный транспортный payload.
|
||||
Runtime не интерпретирует его содержимое.
|
||||
"""
|
||||
|
||||
subscription_key: str
|
||||
message: TransportMessage
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class UnsubscribeCommand:
|
||||
"""
|
||||
Команда на удаление и отправку отмены транспортной подписки.
|
||||
|
||||
subscription_key связывает отмену с ранее зарегистрированной
|
||||
подпиской.
|
||||
|
||||
message содержит уже подготовленный транспортный payload.
|
||||
"""
|
||||
|
||||
subscription_key: str
|
||||
message: TransportMessage
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class SendTextCommand:
|
||||
"""
|
||||
Команда на отправку текстового транспортного сообщения.
|
||||
"""
|
||||
|
||||
message: TransportTextMessage
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class SendBinaryCommand:
|
||||
"""
|
||||
Команда на отправку бинарного транспортного сообщения.
|
||||
"""
|
||||
|
||||
message: TransportBinaryMessage
|
||||
Reference in New Issue
Block a user