Source code for isek.protocol.protocol
from abc import ABC, abstractmethod
from typing import Any, Optional
from isek.adapter.base import Adapter
[docs]
class Protocol(ABC):
def __init__(
self,
host: str = "localhost",
port: int = 8080,
p2p: bool = False,
p2p_server_port: int = 9000,
adapter: Optional[Adapter] = None,
**kwargs: Any,
):
self.adapter = adapter
self.host = host or "localhost"
self.port = port or 8080
self.p2p = p2p or False
self.p2p_server_port = p2p_server_port or 9000
[docs]
@abstractmethod
def bootstrap_server(self):
pass
[docs]
@abstractmethod
def bootstrap_p2p_extension(self):
pass
[docs]
@abstractmethod
def stop_server(self) -> None:
pass
[docs]
@abstractmethod
def send_message(self, sender_node_id, target_address, message):
pass
[docs]
@abstractmethod
def send_p2p_message(self, sender_node_id, p2p_address, message):
pass