Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
De target_block klasse is een abstracte basisklasse die eenvoudige functionaliteit voor koppelingsbeheer en foutcontrole biedt voor alleen doelblokken.
Syntaxis
template<class _SourceLinkRegistry, class _MessageProcessorType = ordered_message_processor<typename _SourceLinkRegistry::type::source_type>>
class target_block : public ITarget<typename _SourceLinkRegistry::type::source_type>;
Parameterwaarden
_SourceLinkRegistry
Het koppelingsregister dat moet worden gebruikt voor het opslaan van de bronkoppelingen.
_MessageProcessorType
Het processortype voor berichtverwerking.
Leden
Openbare typedefs
| Naam | Description |
|---|---|
source_iterator |
Het type van de iterator voor de source_link_manager voor dit target_block object. |
Openbare constructors
| Naam | Description |
|---|---|
| target_block | Maakt een target_block object. |
| ~target_block Destructor | Vernietigt het target_block object. |
Openbare methoden
| Naam | Description |
|---|---|
| Propageren | Asynchroon geeft een bericht van een bronblok door aan dit doelblok. |
| Verzenden | Hiermee wordt een bericht van een bronblok synchroon doorgegeven aan dit doelblok. |
Beveiligde methoden
| Naam | Description |
|---|---|
| async_send | Het systeem verzendt asynchroon een bericht voor verwerking. |
| decline_incoming_messages | Geeft aan het blok aan dat nieuwe berichten moeten worden geweigerd. |
| verwerking_in_batches_inschakelen | Hiermee schakelt u batchverwerking voor dit blok in. |
| initialize_target | Initialiseert het basisobject.
message_processor Het object moet specifiek worden geïnitialiseerd. |
| link_source | Hiermee koppelt u een opgegeven bronblok aan dit target_block object. |
| process_input_messages | Hiermee worden berichten verwerkt die als invoer worden ontvangen. |
| process_message | Wanneer overschreven in een afgeleide klasse, verwerkt het een bericht dat door dit target_block object is geaccepteerd. |
| propagate_message | Wanneer deze methode wordt overschreven in een afgeleide klasse, geeft deze methode asynchroon een bericht van een ISource blok door aan dit target_block object. Deze wordt aangeroepen door de propagate methode, wanneer deze wordt aangeroepen door een bronblok. |
| register_filter | Registreert een filtermethode die wordt aangeroepen voor elk ontvangen bericht. |
| verwijder_bronnen | Hiermee ontkoppelt u alle bronnen nadat u hebt gewacht tot openstaande asynchrone verzendbewerkingen zijn voltooid. |
| send_message | Wanneer deze methode in een afgeleide klasse wordt overschreven, geeft deze methode een bericht van een ISource blok aan dit target_block object synchroon door. Deze wordt aangeroepen door de send methode, wanneer deze wordt aangeroepen door een bronblok. |
| sync_send | Verzend synchroon een bericht voor verwerking. |
| unlink_source | Hiermee ontkoppelt u een opgegeven bronblok van dit target_block object. |
| unlink_sources | Hiermee ontkoppelt u alle bronblokken van dit target_block object. (Overschrijft ITarget::unlink_sources.) |
| wacht_op_asynchrone_verzendingen | Wacht totdat alle asynchrone propagaties zijn voltooid. |
Overnamehiërarchie
target_block
Requirements
Header: agents.h
Naamruimte: concurrentie
async_send
Het systeem verzendt asynchroon een bericht voor verwerking.
void async_send(_Inout_opt_ message<_Source_type>* _PMessage);
Parameterwaarden
_PMessage
Een aanwijzer naar het bericht dat wordt verzonden.
inkomende_berichten_afwijzen
Geeft aan het blok aan dat nieuwe berichten moeten worden geweigerd.
void decline_incoming_messages();
Opmerkingen
Deze methode wordt aangeroepen door de destructor om ervoor te zorgen dat nieuwe berichten worden geweigerd terwijl de vernietiging wordt uitgevoerd.
de_batchverwerking_inschakelen
Hiermee schakelt u batchverwerking voor dit blok in.
void enable_batched_processing();
initialiseer_doel
Initialiseert het basisobject.
message_processor Het object moet specifiek worden geïnitialiseerd.
void initialize_target(
_Inout_opt_ Scheduler* _PScheduler = NULL,
_Inout_opt_ ScheduleGroup* _PScheduleGroup = NULL);
Parameterwaarden
_PScheduler
De planner die moet worden gebruikt voor het plannen van taken.
_PScheduleGroup
De planningsgroep die moet worden gebruikt voor het plannen van taken.
link_source
Hiermee koppelt u een opgegeven bronblok aan dit target_block object.
virtual void link_source(_Inout_ ISource<_Source_type>* _PSource);
Parameterwaarden
_PSource
Een aanwijzer naar het ISource blok dat moet worden gekoppeld.
Opmerkingen
Deze functie mag niet rechtstreeks op een target_block object worden aangeroepen. Blokken moeten worden verbonden met behulp van de link_target methode op ISource blokken, waarmee de link_source methode op het bijbehorende doel wordt aangeroepen.
verwerk_invoersberichten
Hiermee worden berichten verwerkt die als invoer worden ontvangen.
virtual void process_input_messages(_Inout_ message<_Source_type>* _PMessage);
Parameterwaarden
_PMessage
Een aanwijzer naar het bericht dat moet worden verwerkt.
process_message
Wanneer overschreven in een afgeleide klasse, verwerkt het een bericht dat door dit target_block object is geaccepteerd.
virtual void process_message(message<_Source_type> *);
Doorgeven
Asynchroon geeft een bericht van een bronblok door aan dit doelblok.
virtual message_status propagate(
_Inout_opt_ message<_Source_type>* _PMessage,
_Inout_opt_ ISource<_Source_type>* _PSource);
Parameterwaarden
_PMessage
Een aanwijzer naar het message object.
_PSource
Een aanwijzer naar het bronblok dat het bericht aanbiedt.
Retourwaarde
Een message_status indicatie van wat het doel heeft besloten te doen met het bericht.
Opmerkingen
De methode gooit een invalid_argument uitzondering indien de _PMessage of _PSource parameter NULL is.
propagate_message
Wanneer deze methode wordt overschreven in een afgeleide klasse, geeft deze methode asynchroon een bericht van een ISource blok door aan dit target_block object. Deze wordt aangeroepen door de propagate methode, wanneer deze wordt aangeroepen door een bronblok.
virtual message_status propagate_message(
_Inout_ message<_Source_type>* _PMessage,
_Inout_ ISource<_Source_type>* _PSource) = 0;
Parameterwaarden
_PMessage
Een aanwijzer naar het message object.
_PSource
Een aanwijzer naar het bronblok dat het bericht aanbiedt.
Retourwaarde
Een message_status indicatie van wat het doel heeft besloten te doen met het bericht.
register_filter
Registreert een filtermethode die wordt aangeroepen voor elk ontvangen bericht.
void register_filter(filter_method const& _Filter);
Parameterwaarden
_Filter
De filtermethode.
bronnen_verwijderen
Hiermee ontkoppelt u alle bronnen nadat u hebt gewacht tot openstaande asynchrone verzendbewerkingen zijn voltooid.
void remove_sources();
Opmerkingen
Alle doelblokken moeten deze routine aanroepen om de bronnen in hun destructor te verwijderen.
Verzenden
Hiermee wordt een bericht van een bronblok synchroon doorgegeven aan dit doelblok.
virtual message_status send(
_Inout_ message<_Source_type>* _PMessage,
_Inout_ ISource<_Source_type>* _PSource);
Parameterwaarden
_PMessage
Een aanwijzer naar het message object.
_PSource
Een aanwijzer naar het bronblok dat het bericht aanbiedt.
Retourwaarde
Een message_status indicatie van wat het doel heeft besloten te doen met het bericht.
Opmerkingen
De methode gooit een invalid_argument uitzondering indien de _PMessage of _PSource parameter NULL is.
Het gebruik van de send methode buiten de initiatie van berichten en om berichten binnen een netwerk door te geven is gevaarlijk en kan leiden tot impasses.
Wanneer send terugkeert, is het bericht ofwel al geaccepteerd en overgebracht naar het doelblok, of het is geweigerd door het doel.
bericht_verzenden
Wanneer deze methode in een afgeleide klasse wordt overschreven, geeft deze methode een bericht van een ISource blok aan dit target_block object synchroon door. Deze wordt aangeroepen door de send methode, wanneer deze wordt aangeroepen door een bronblok.
virtual message_status send_message(
_Inout_ message<_Source_type> *,
_Inout_ ISource<_Source_type> *);
Retourwaarde
Een message_status indicatie van wat het doel heeft besloten te doen met het bericht.
Opmerkingen
Dit blok retourneert declined standaard, tenzij dit wordt overschreven door een afgeleide klasse.
sync_send
Verzend synchroon een bericht voor verwerking.
void sync_send(_Inout_opt_ message<_Source_type>* _PMessage);
Parameterwaarden
_PMessage
Een aanwijzer naar het bericht dat wordt verzonden.
target_block
Maakt een target_block object.
target_block();
~target_block
Vernietigt het target_block object.
virtual ~target_block();
unlink_bron
Hiermee ontkoppelt u een opgegeven bronblok van dit target_block object.
virtual void unlink_source(_Inout_ ISource<_Source_type>* _PSource);
Parameterwaarden
_PSource
Een aanwijzer naar het ISource blok dat moet worden ontkoppeld.
bronnen_ontkoppelen
Hiermee ontkoppelt u alle bronblokken van dit target_block object.
virtual void unlink_sources();
wait_for_async_sends (wachten_op_asynchrone_verzendingen)
Wacht totdat alle asynchrone propagaties zijn voltooid.
void wait_for_async_sends();
Opmerkingen
Deze methode wordt door destructors van berichtblokken gebruikt om ervoor te zorgen dat alle asynchrone bewerkingen de tijd hebben gehad om te zijn voltooid voordat het blok wordt vernietigd.