Class ResultConsumer<Req extends Message,​Res extends Message>

  • Type Parameters:
    Req - тип запроса
    Res - тип ответа

    public class ResultConsumer<Req extends Message,​Res extends Message>
    extends Object
    Синхронное и асинхронное выполнение запроса
    • Field Detail

      • proto

        protected final TcpProtocol proto
        управление TCP потоком
      • req

        protected final Req extends Message req
        запрос
      • errorConsumers

        protected final Map<Integer,​Consumer<ErrMessage>> errorConsumers
        Карта подписчиков на ошибочное выполнение запроса
      • responseConsumers

        protected final Map<Integer,​Consumer<Res extends Message>> responseConsumers
        Карта подписчиков на успешное выполнение запроса
      • consumer

        protected volatile Consumer<Res extends Message> consumer
        Подписчик на успешное выполнение
      • errConsumer

        protected volatile Consumer<ErrMessage> errConsumer
        Подписчик на ошибочное выполнение
    • Constructor Detail

      • ResultConsumer

        public ResultConsumer​(TcpProtocol proto,
                              Req req,
                              Map<Integer,​Consumer<ErrMessage>> errorConsumers,
                              Map<Integer,​Consumer<Res>> responseConsumers)
        Конструктор
        Parameters:
        proto - управление TCP потоком
        req - запрос
        errorConsumers - Карта подписчиков на ошибочное выполнение запроса
        responseConsumers - Карта подписчиков на успешное выполнение запроса
    • Method Detail

      • onSuccess

        public ResultConsumer<Req,​Res> onSuccess​(Consumer<Res> response)
        Добавляет подписчика на успешное выполнение запроса
        Parameters:
        response - подписчик
        Returns:
        SELF ссылка
      • onSuccess

        protected ResultConsumer<Req,​Res> onSuccess​(Consumer<Res> response,
                                                          Consumer<xyz.cofe.fn.Tuple2<Consumer<Res>,​Consumer<Res>>> changes)
        Добавляет еще одного подписчика на успешное выполнение.
        Добавляет (по необходимости) к существующему подписчику еще один.
        Parameters:
        response - подписчик
        changes - Что было, что стало
        Returns:
        SELF ссылка
      • onFail

        public ResultConsumer<Req,​Res> onFail​(Consumer<ErrMessage> response)
        Добавляет подписчика на ошибочное выполнение.
        Parameters:
        response - подписчик
        Returns:
        SELF ссылка
      • onFail

        protected ResultConsumer<Req,​Res> onFail​(Consumer<ErrMessage> response,
                                                       Consumer<xyz.cofe.fn.Tuple2<Consumer<ErrMessage>,​Consumer<ErrMessage>>> changes)
        Добавляет еще одного подписчика на ошибочное выполнение.
        Добавляет (по необходимости) к существующему подписчику еще один.
        Parameters:
        response - подписчик
        changes - Что было, что стало
        Returns:
        SELF ссылка
      • send

        public void send()
        Асинхронное выполнение запроса
      • fetch

        public Res fetch()
        Синхронное выполнение запроса
        Returns:
        результат выполнения