from logging import getLogger
from typing import Any, Dict

from nperipherals_core.model.device import WriterDevice

logger = getLogger(__name__)


class NetworkPrinterDevice(WriterDevice):
    def __init__(self, device_configurations):
        # type: (Dict[unicode, Any]) -> None

        self.name = device_configurations["Name"]  # type: unicode
        self.host = device_configurations["Host"]  # type: unicode
        self.port = device_configurations["Port"]  # type: int

    def get_name(self):
        # type: () -> unicode

        return self.name

    def initialize(self):
        # type: () -> None

        raise NotImplementedError()

    def connect(self):
        # type: () -> None

        raise NotImplementedError()

    def disconnect(self):
        # type: () -> None

        raise NotImplementedError()

    def write(self, data):
        # type: (unicode) -> None

        raise NotImplementedError()
