Skip to content

Latest commit

 

History

History
85 lines (52 loc) · 3.44 KB

stream-class.markdown

File metadata and controls

85 lines (52 loc) · 3.44 KB

[К началу] | [Библиотека Core]


Библиотека Core

Класс Stream

Класс Stream является базовым для символьных и бинарных потоков и наследует от класса Print. Класс Stream является абстракным, наследующие ему классы должны реализовать следующие методы:

virtual int available() = 0;
virtual int read() = 0;
virtual int peek() = 0;
virtual void flush() = 0;

Также класс предоставляет собственные методы, но при этом не реализует метод write(), который должен быть реализован в наследующих от него классах.

Рассмотрим методы класса Stream подробнее.

Конструктор Stream()

Конструктор Stream() задаёт таймаут для потоковых операций продолжительностью 1000 мс (1 сек). Напрямую этот конструктор не вызывается, так как невозможно создание экземпляров класса Stream.

Метод available()

Метод available() возвращает количество доступных для чтения из потока байт.

Этот метод должен быть реализован в наследуемом классе.

Метод read()

Метод read() возвращает первый байт из доступных для чтения. Если читать нечего, то возвращается -1. Обратите внимание, что метод имеет тип int, то есть возвращает 16-разрядное значение, но из этих 16 разрядов значимые только младшие 8, если только это не -1.

Этот метод должен быть реализован в наследуемом классе.

Метод peek()

Метод peak() возвращает первый байт из доступных для чтения, но в отличие от read() продвижение к следующему байту не происходит, то есть повторные вызовы peak() будут возвращать то же самое значение.

Этот метод должен быть реализован в наследуемом классе.

Метод flush()

Метод flush() вызывает очистку буфера от уже отправленых данных.

Этот метод должен быть реализован в наследуемом классе.

Метод setTimeout()

Метод setTimeout() позволяет таймаут для потоковых операций. Метод получает на вход целое беззнаковое 32-разрядное значение.

    void setTimeout(unsigned long timeout);

...


Смотри также:


[К началу] | [Библиотека Core]


(c) 2015, Симоненко Евгений А. easimonenko@mail.ru