Função de recepção
Geral recebe a implementação, permitindo um contexto aguardar os dados de origem exatamente um e filtrar os valores que são aceitos.
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
);
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
);
Parâmetros
_Type
O tipo de carga._Src
Um ponteiro ou uma referência para a origem da qual os dados são esperados._Timeout
O tempo máximo para o qual o método deve para os dados, em milissegundos._Filter_proc
Uma função de filtro que determina se as mensagens devem ser aceitas.
Valor de retorno
Um valor de origem, do tipo de carga.
Comentários
Se o parâmetro _Timeout tem um valor diferente a constante COOPERATIVE_TIMEOUT_INFINITE, a exceção operation_timed_out é lançada se o período de tempo especificado expirar antes de uma mensagem é recebida. Se desejar que um limite de comprimento zero, você deve usar o try-receive a função, em oposição à chamada receive com um tempo limite de 0 (zero), pois é mais eficiente e não emite exceções no tempo limite.
Para obter mais informações, consulte Funções de transmissão de mensagens.
Requisitos
Cabeçalho: Agents.h
Namespace: Simultaneidade