Source code for gnomish_army_knife.net
"""
A module implementing networking-related interfaces for the package.
"""
# third-party
from runtimepy.net.arbiter.task import TaskFactory
from runtimepy.net.arbiter.tcp import TcpConnectionFactory
from runtimepy.net.arbiter.websocket import WebsocketConnectionFactory
from runtimepy.net.tcp.connection import TcpConnection
from runtimepy.net.websocket import WebsocketConnection
# internal
from gnomish_army_knife.net.connection import CombatLogEventConnection
from gnomish_army_knife.net.task import LogServerTask
from gnomish_army_knife.net.writer import LogWriterTask
__all__ = [
"CombatLogEventConnection",
"LogServer",
"LogWriter",
"TcpCombatLogEvent",
"WebsocketCombatLogEvent",
"WebsocketCombatLogEventConnection",
"TcpCombatLogEventConnection",
]
[docs]
class LogServer(TaskFactory[LogServerTask]):
"""A class implementing a log-server task factory."""
kind = LogServerTask
[docs]
class LogWriter(TaskFactory[LogWriterTask]):
"""A class implementing a log-writer task factory."""
kind = LogWriterTask
[docs]
class WebsocketCombatLogEventConnection(
CombatLogEventConnection, WebsocketConnection
):
"""WebSocket combat-log connection."""
[docs]
class TcpCombatLogEventConnection(CombatLogEventConnection, TcpConnection):
"""TCP combat-log connection."""
[docs]
class TcpCombatLogEvent(TcpConnectionFactory[TcpCombatLogEventConnection]):
"""TCP JSON-connection factory."""
kind = TcpCombatLogEventConnection
[docs]
class WebsocketCombatLogEvent(
WebsocketConnectionFactory[WebsocketCombatLogEventConnection]
):
"""WebSocket combat-log-connection factory."""
kind = WebsocketCombatLogEventConnection