다음을 통해 공유


overwrite_buffer 클래스

overwrite_buffer 메시징 블록은 한 번에 단일 메시지를 저장할 수 있는 다중 대상, 다중 소스, 순서가 지정된 propagator_block입니다. 새 메시지는 이전에 보관된 메시지를 덮어씁니다.

template<
   class _Type
>
class overwrite_buffer : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;

매개 변수

  • _Type
    버퍼에 의해 저장되고 전파되는 메시지의 페이로드 형식입니다.

멤버

Public 생성자

Name

설명

overwrite_buffer::overwrite_buffer 생성자

오버로드되는 이 메서드는 overwrite_buffer 메시징 블록을 생성합니다.

overwrite_buffer::~overwrite_buffer 소멸자

overwrite_buffer 메시징 블록을 소멸시킵니다.

Public 메서드

Name

설명

overwrite_buffer::has_value 메서드

overwrite_buffer 메시징 블록이 값을 갖고 있는지 여부를 확인합니다.

overwrite_buffer::value 메서드

overwrite_buffer 메시징 블록에 저장되는 메시지의 현재 페이로드에 대한 참조를 가져옵니다.

Protected 메서드

Name

설명

overwrite_buffer::accept_message 메서드

호출자에게 메시지의 사본을 반환하는 이 overwrite_buffer 메시징 블록에 의해 제공된 메시지를 수락합니다.

overwrite_buffer::consume_message 메서드

overwrite_buffer 메시징 블록이 이전에 제공하고 메시지의 복사본을 호출자에게 반환하는 대상이 예약한 메시지를 사용합니다.

overwrite_buffer::link_target_notification 메서드

새 대상이 이 overwrite_buffer 메시징 블록에 연결되었음을 알리는 콜백입니다.

overwrite_buffer::propagate_message 메서드

비동기적으로 메시지를 ISource 블록에서 이 overwrite_buffer 메시징 블록에 전달합니다. 소스 블록에 의해 호출되면 propagate 메서드가 호출됩니다.

overwrite_buffer::propagate_to_any_targets 메서드

overwrite_buffer 메시징 블록에 message_PMessage를 배치하고 연결된 모든 대상에 제공합니다.

overwrite_buffer::release_message 메서드

이전 메시지 예약을 해제합니다. (source_block::release_message를 재정의합니다.)

overwrite_buffer::reserve_message 메서드

overwrite_buffer 메시징 블록이 이전에 제공한 메시지를 예약합니다. (source_block::reserve_message를 재정의합니다.)

overwrite_buffer::resume_propagation 메서드

예약이 해제된 후 전파를 다시 시작합니다. (source_block::resume_propagation를 재정의합니다.)

overwrite_buffer::send_message 메서드

동기적으로 메시지를 이 ISource 블록에서 이 overwrite_buffer 메시징 블록에 전달합니다. 소스 블록에 의해 호출되면 send 메서드가 호출됩니다.

설명

overwrite_buffer 메시징 블록은 각 대상으로 저장된 메시지 복사본을 전파합니다.

자세한 내용은 비동기 메시지 블록을 참조하십시오.

상속 계층 구조

ISource

source_block

ITarget

propagator_block

overwrite_buffer

요구 사항

헤더: agents.h

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스

unbounded_buffer 클래스

single_assignment 클래스