Функция receive
Реализация общего получения, позволяющая контексту ждать данных из ровно одного источника и фильтровать значения, которые принимаются.
template <
class _Type
>
_Type receive(
_Inout_ ISource<_Type> * _Src,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);
template <
class _Type
>
_Type receive(
_Inout_ ISource<_Type> * _Src,
typename ITarget<_Type>::filter_method const& _Filter_proc,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);
template <
class _Type
>
_Type receive(
ISource<_Type> &_Src,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);
template <
class _Type
>
_Type receive(
ISource<_Type> &_Src,
typename ITarget<_Type>::filter_method const& _Filter_proc,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE
);
Параметры
_Type
Тип полезных данных._Src
Указатель или ссылка на источник, из которого ожидаются данные._Timeout
Максимальное время, для которого следует метод для данных в миллисекундах._Filter_proc
Функция фильтра, которая определяет, следует ли принять сообщения.
Возвращаемое значение
Значения из источника типа полезной нагрузки.
Заметки
Если параметр _Timeout имеет значение, отличное от констант COOPERATIVE_TIMEOUT_INFINITE, исключение operation_timed_out выбрасывается при истечении указанного промежутка времени до получения сообщения.Если нужно время ожидания нулевой длины, следует использовать функцию try_receive, в противоположность вызову receive с таймаутом 0 (ноль), так как он является более эффективным и не выдает исключений в связи с временем ожидания.
Дополнительные сведения см. в разделе Функции передачи сообщений.
Требования
Заголовок: agents.h
Параллелизм пространство имен: