다음을 통해 공유


propagator_block 클래스

propagator_block 클래스는 소스 및 대상인 메시지 블록에 대한 추상 기본 클래스입니다. source_blocktarget_block 클래스의 기능을 결합합니다.

template<
   class _TargetLinkRegistry,
   class _SourceLinkRegistry,
   class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class propagator_block : public source_block<_TargetLinkRegistry, _MessageProcessorType>, public ITarget<typename _SourceLinkRegistry::type::source_type>;

매개 변수

  • _TargetLinkRegistry
    대상 링크를 저장하는 데 사용할 링크 레지스트리입니다.

  • _SourceLinkRegistry
    소스 링크를 저장하는 데 사용할 링크 레지스트리입니다.

  • _MessageProcessorType
    메시지 처리를 위한 프로세서 형식입니다.

멤버

공용 Typedefs

Name

설명

source_iterator

propagator_block에 대한 source_link_manager의 반복기 형식입니다.

Public 생성자

Name

설명

propagator_block::propagator_block 생성자

propagator_block 개체를 생성합니다.

propagator_block::~propagator_block 소멸자

propagator_block 개체를 소멸시킵니다.

Public 메서드

Name

설명

propagator_block::propagate 메서드

소스 블록에서 이 대상 블록에 메시지를 비동기적으로 전달합니다.

propagator_block::send 메서드

이 블록에 대한 메시지를 동기적으로 시작합니다. ISource 블록에 의해 호출됩니다. 이 함수가 완료되면 메시지는 이미 블록 안으로 전파되어 있습니다.

Protected 메서드

Name

설명

propagator_block::decline_incoming_messages 메서드

새 메시지가 거부되어야 하는 블록을 나타냅니다.

propagator_block::initialize_source_and_target 메서드

기본 개체를 초기화합니다. 특히, message_processor 개체를 초기화해야 합니다.

propagator_block::link_source 메서드

propagator_block 개체에 지정된 소스 블록을 연결합니다.

propagator_block::propagate_message 메서드

파생 클래스에서 재정의된 경우 이 메서드는 비동기적으로 메시지를 ISource 블록에서 이 propagator_block 개체를 전달합니다. 소스 블록에 의해 호출되면 propagate 메서드가 호출됩니다.

propagator_block::register_filter 메서드

받은 모든 메시지에 대해 호출될 필터 메서드를 등록합니다.

propagator_block::remove_network_links 메서드

propagator_block 개체에서 모든 소스 및 대상 네트워크 링크를 제거합니다.

propagator_block::send_message 메서드

파생 클래스에서 재정의된 경우 이 메서드를 동기적으로 메시지를 ISource 블록에서 이 propagator_block 개체를 전달합니다. 소스 블록에 의해 호출되면 send 메서드가 호출됩니다.

propagator_block::unlink_source 메서드

propagator_block 개체에서 지정한 소스 블록의 연결을 해제합니다.

propagator_block::unlink_sources 메서드

propagator_block 개체에서 모든 소스 블록의 연결을 해제합니다. (ITarget::unlink_sources를 재정의합니다.)

설명

다중 상속이 발생하지 않도록 propagator_block 클래스는 source_block 클래스 및 ITarget 추상 클래스에서 상속됩니다. target_block 클래스의 기능 대부분은 여기에 복제됩니다.

상속 계층 구조

ISource

source_block

ITarget

propagator_block

요구 사항

헤더: agents.h

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스

source_block 클래스

ITarget 클래스