Classe source_block
La classe source_block è una classe base astratta per blocchi di sola origine. La classe fornisce funzionalità di gestione dei collegamenti di base come controlli dell'errore comune.
template<
class _TargetLinkRegistry,
class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class source_block : public ISource<typename _TargetLinkRegistry::type::type>;
Parametri
_TargetLinkRegistry
Registro di sistema dei collegamenti da utilizzare per il mantenimento dei collegamenti di destinazione._MessageProcessorType
Tipo di processore per elaborazione del messaggio.
Membri
Typedef pubblici
Nome |
Oggetto di descrizione |
---|---|
target_iterator |
Iteratore per mostrare le destinazioni connesse. |
Costruttori pubblici
Nome |
Oggetto di descrizione |
---|---|
Costruisce un oggetto source_block. |
|
Elimina l'oggetto source_block. |
Metodi pubblici
Nome |
Oggetto di descrizione |
---|---|
Accetta un messaggio offerto dall'oggetto source_block, trasferendo la proprietà al chiamante. |
|
Acquisisce un conteggio dei riferimenti su questo oggetto source_block, per impedire eliminazione. |
|
Utilizza un messaggio precedentemente offerto da questo oggetto source_block e riservato correttamente dalla destinazione trasferendo la proprietà al chiamante. |
|
Connette un blocco di destinazione al blocco dell'oggetto source_block. |
|
Consente di rilasciare una prenotazione corretta del messaggio precedente. |
|
Consente di rilasciare un conteggio dei riferimenti su tale oggetto source_block. |
|
Consente di riservare un messaggio messo a disposizione in precedenza da tale oggetto source_block. |
|
Consente di scollegare un blocco di destinazione dall'oggetto source_block. |
|
Consente di scollegare tutti i blocchi di destinazione dall'oggetto source_block. (Esegue l'override di ISource::unlink_targets.) |
Metodi protetti
Nome |
Oggetto di descrizione |
---|---|
Quando sottoposto a override in una classe derivata, accetta un messaggio proposto dall'origine. I blocchi del messaggio devono eseguire l'override di questo metodo per convalidare _MsgId e restituire un messaggio. |
|
Consente di mettere in coda in modo asincrono i messaggi e avviare un'attività di propagazione, se questa non è già stata eseguita |
|
Quando sottoposto a override in una classe derivata, utilizza un messaggio precedentemente riservato. |
|
Inizializza l'opzione message_propagator all'interno di questo source_block. |
|
Un callback che notifica che una nuova destinazione è stata collegata a questo oggetto source_block. |
|
Quando sottoposto a override in una classe derivata, propaga il messaggio specificato a una o tutte le destinazioni collegate. Si tratta della routine di propagazione principale per i blocchi di messaggio. |
|
Quando sottoposto a override in una classe derivata, rilascia un precedente prenotazione del messaggio. |
|
Consente di rimuovere tutti i collegamenti di destinazione per tale blocco di origine. Deve essere chiamato dal distruttore. |
|
Quando sottoposto a override in una classe derivata, riserva un messaggio precedentemente proposto dall'oggetto source_block. |
|
Quando sottoposto a override in una classe derivata, riprende la propagazione dopo che è stata rilasciata una prenotazione. |
|
Consente di mettere in coda in modo sincrono i messaggi e avviare un'attività di propagazione, se questa non è già stata eseguita. |
|
Callback che notifica che una destinazione è stata scollegata dall'oggetto source_block. |
|
Consente di attendere il completamento di tutte le propagazioni asincrone. Si utilizza l'attesa della rotazione specifica del propagatore nei distruttori di blocchi del messaggio per assicurarsi che tutte le propagazioni asincrone abbiano il tempo di terminare prima della distruzione del blocco. |
Note
I blocchi del messaggio devono derivare da questo blocco per beneficiare della gestione di collegamenti e della sincronizzazione fornite da questa classe.
Gerarchia di ereditarietà
Requisiti
Header: agents.h
Spazio dei nomi: Concurrency