BaseLicClient

abstract class BaseLicClient<TEvent : Any, TProto : Any>

Базовый клиент лицензирования для UI-слоя.

Компонент инкапсулирует:

  • работу с брокером сообщений

  • подписку на поток событий определённого типа (через фильтр по ProtoCmdType)

  • первичный запрос состояния

  • обновление слушателей событий через JavaFX-поток.

Универсален за счёт двух параметров типа:

Parameters

TEvent

тип доменного события, передаваемого UI (DTO).

TProto

тип protobuf-структуры (исходное сообщение от модуля лицензирования).

Класс предназначен для наследования: конкретный клиент должен определить какие команды слушать, как интерпретировать protobuf-сообщение и как формировать запросы на получение начального состояния.

Inheritors

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open lateinit var broker: MessageBroker<ByteString, ProtoMessageWrapper>

Экземпляр брокера сообщений.

Link copied to clipboard

Последнее полученное событие (используется для кэширования).

Functions

Link copied to clipboard
fun addListener(listener: (TEvent) -> Unit): (TEvent) -> Unit

Добавляет слушателя событий.

Link copied to clipboard
fun init()

Инициализирует клиента:

Link copied to clipboard

Создаёт экземпляр брокера сообщений.

Link copied to clipboard
fun removeListener(listener: (TEvent) -> Unit)

Удаляет слушателя событий.

Link copied to clipboard

Выполняет первичный запрос актуального состояния.

Link copied to clipboard
fun subscribe()

Выполняет подписку на поток сообщений брокера.

Link copied to clipboard
fun update(event: TEvent)

Оповещает слушателей о новом событии.