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

Consulte também

Referência

Namespace de simultaneidade

Função de try-receive

Função de enviar

Função de asend