receive 함수
컨텍스트가 정확히 한 소스에서 데이터를 기다리고 수신된 값을 필터링할 수 있는 일반 수신 구현입니다.
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
);
매개 변수
_Type
페이로드 형식입니다._Src
데이터가 예상되는 소스에 대한 포인터 또는 참조입니다._Timeout
메서드가 데이터에 대해 가져야 하는 밀리초 단위의 최대 시간입니다._Filter_proc
메시지 수락 여부를 결정하는 필터 함수입니다.
반환 값
페이로드 형식의 소스 값입니다.
설명
매개 변수 _Timeout이 상수 COOPERATIVE_TIMEOUT_INFINITE 이외의 값을 갖는 경우 지정된 시간이 메시지를 받기 전에 경과되면 예외 operation_timed_out이 throw됩니다. 길이가 0인 시간 초과를 원하는 경우 보다 효율적이기 때문에 시간 초과 0(제로)으로 receive를 호출하는 것과 반대로 try_receive 함수를 사용해야 하며 시간 초과에 대한 예외를 throw하지 않습니다.
자세한 내용은 메시지 전달 함수을 참조하십시오.
요구 사항
헤더: agents.h
네임스페이스: 동시성