Condividi tramite


Classe overwrite_buffer

Un blocco della messaggistica overwrite_buffer è un propagator_block multi-origine a destinazione singola, in grado di archiviare un unico messaggio alla volta.I nuovi messaggi sovrascrivono i precedenti.

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

Parametri

  • _Type
    Tipo di payload dei messaggi memorizzati e propagati dal buffer.

Membri

Dd492533.collapse_all(it-it,VS.110).gifCostruttori pubblici

Nome

Descrizione

Costruttore overwrite_buffer::overwrite_buffer

Di overload.Costruisce un blocco della messaggistica overwrite_buffer.

Distruttore overwrite_buffer::~overwrite_buffer

Distrugge il blocco della messaggistica overwrite_buffer.

Dd492533.collapse_all(it-it,VS.110).gifMetodi pubblici

Nome

Descrizione

Metodo overwrite_buffer::has_value

Controlla se questo blocco della messaggistica overwrite_buffer dispone già di un valore.

Metodo overwrite_buffer::value

Ottiene un riferimento al payload corrente del messaggio archiviato nel blocco della messaggistica overwrite_buffer.

Dd492533.collapse_all(it-it,VS.110).gifMetodi protetti

Nome

Descrizione

Metodo overwrite_buffer::accept_message

Accetta un messaggio offerto dal blocco di messaggistica overwrite_buffer, restituendo una copia del messaggio al chiamante.

Metodo overwrite_buffer::consume_message

Utilizza un messaggio precedentemente offerto dal blocco di messaggistica overwrite_buffer e riservato dalla destinazione restituendo una copia del messaggio al chiamante.

Metodo overwrite_buffer::link_target_notification

Un callback che notifica che una nuova destinazione è stata collegata a questo blocco della messaggistica overwrite_buffer.

Metodo overwrite_buffer::propagate_message

Consente di passare in modo asincrono un messaggio da un blocco ISource a quello della messaggistica overwrite_buffer.Viene richiamato dal metodo propagate se chiamato da un blocco di origine.

Metodo overwrite_buffer::propagate_to_any_targets

Consente di posizionare message_PMessage in tale blocco della messaggistica overwrite_buffer e di metterlo a disposizione di tutte le destinazioni collegate.

Metodo overwrite_buffer::release_message

Consente di rilasciare una prenotazione del messaggio precedente.(Consente di eseguire l'override di source_block::release_message.)

Metodo overwrite_buffer::reserve_message

Consente di riservare un messaggio messo a disposizione in precedenza da tale blocco della messaggistica overwrite_buffer.(Consente di eseguire l'override source_block::reserve_message.)

Metodo overwrite_buffer::resume_propagation

Consente di riprendere una propagazione dopo il rilascio di una prenotazione.(Consente di eseguire l'override source_block::resume_propagation.)

Metodo overwrite_buffer::send_message

Consente di passare in modo sincrono un messaggio da un blocco ISource a quello della messaggistica overwrite_buffer.Viene richiamato dal metodo send se chiamato da un blocco di origine.

Metodo overwrite_buffer::supports_anonymous_source

Esegue l'override del metodo di supports_anonymous_source per indicare che questo blocco può accettare i messaggi offerti da un database di origine che non è connesso.(Override ITarget::supports_anonymous_source).

Note

Un blocco della messaggistica overwrite_buffer propaga copie del suo messaggio archiviato a ciascuna delle sue destinazioni.

Per ulteriori informazioni, vedere Blocchi dei messaggi asincroni.

Gerarchia di ereditarietà

ISource

ITarget

source_block

propagator_block

overwrite_buffer

Requisiti

Header: agents.h

Concorrenza diSpazio dei nomi:

Vedere anche

Riferimenti

Spazio dei nomi concurrency

Classe unbounded_buffer

Classe single_assignment