Função receive
Um geral obtém a implementação, permitindo que um contexto exatamente uma espera dados de origem e filtra os valores aceitos.
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
);
Parâmetros
_Type
O tipo de carga._Src
Um ponteiro ou uma referência à origem dos dados esperados._Timeout
O tempo máximo para que 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 tiver um valor diferente COOPERATIVE_TIMEOUT_INFINITEconstante, a exceção operation_timed_out será gerada se a quantidade especificada de tempo expirar antes que uma mensagem é recebida. Se você desejar um tempo limite de comprimento zero, você deve usar a função de try_receive , em vez de chamar receive com um tempo limite de 0 (zero), porque é mais eficiente e não lança exceções em tempo limite.
Para obter mais informações, consulte Funções de transmissão de mensagem.
Requisitos
Cabeçalho: agents.h
Namespace: simultaneidade