source_block (Clase)
La clase source_block es una clase base abstracta para bloques sólo de origen. La clase proporciona funcionalidad de administración de vínculo básico, así como comprobaciones de errores frecuentes.
template<
class _TargetLinkRegistry,
class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class source_block : public ISource<typename _TargetLinkRegistry::type::type>;
Parámetros
_TargetLinkRegistry
El Registro del vínculo que se va a usar para retener los vínculos de destino._MessageProcessorType
Tipo de procesador para el procesamiento de mensajes.
Miembros
Typedefs públicas
Name |
Descripción |
---|---|
target_iterator |
El iterador para recorrer los destinos conectados. |
Constructores públicos
Name |
Descripción |
---|---|
Crea un objeto source_block. |
|
Destruye el objeto source_block. |
Métodos públicos
Name |
Descripción |
---|---|
Acepta un mensaje que fue proporcionado por este objeto source_block, transfiriendo la propiedad al llamador. |
|
Adquiere un recuento de referencias en este objeto source_block, para evitar la eliminación. |
|
Consume un mensaje que fue proporcionado anteriormente por este objeto source_block y correctamente reservado por el destino, transfiriendo la propiedad al llamador. |
|
Vincula un bloque de destino con este objeto source_block. |
|
Libera una reserva de mensaje anterior correcta. |
|
Libera un recuento de referencias en este objeto source_block. |
|
Reserva un mensaje ofrecido previamente por este objeto source_block. |
|
Desvincula un bloque de destino de este objeto source_block. |
|
Desvincula todos los bloques de destino desde este objeto source_block. (Invalida ISource::unlink_targets.) |
Métodos protegidos
Name |
Descripción |
---|---|
Cuando se invalida en una clase derivada, acepta un mensaje proporcionado por el origen. Los bloques de mensaje deberían invalidar este método para validar _MsgId y devolver un mensaje. |
|
De forma asincrónica, pone en la cola a los mensajes e inicia una tarea de propagación, si esto no se ha hecho ya. |
|
Cuando se invalida en una clase derivada, consume un mensaje reservado previamente. |
|
Inicializa message_propagator dentro de este source_block. |
|
Una devolución de llamada que notifica que se ha vinculado un nuevo destino a este objeto source_block. |
|
Cuando se invalida en una clase derivada, propaga el mensaje dado a cualquiera o a todos los destinos vinculados. Esta es la rutina de propagación principal para los bloques de mensaje. |
|
Cuando se invalida en una clase derivada, libera una reserva de mensaje anterior. |
|
Quita todos los vínculos de destino para este bloque de orígenes. Se debería llamar a esto desde el destructor. |
|
Cuando se invalida en una clase derivada, reserva un mensaje ofrecido previamente por este objeto source_block. |
|
Cuando se invalida en una clase derivada, reanuda la propagación después de liberar una reserva. |
|
De forma sincrónica, pone en la cola a los mensajes e inicia una tarea de propagación, si esto no se ha hecho ya. |
|
Una devolución de llamada que notifica que se ha desvinculado un destino de este objeto source_block. |
|
Espera a que todas las propagaciones asincrónicas se completen. Esta espera de vuelta específica del propagador se usa en destructores de bloques de mensaje para asegurarse de que todas las propagaciones asincrónicas tienen tiempo para finalizar antes de destruir el bloque. |
Comentarios
Los bloques de mensaje deberían derivar de este bloque para aprovechar la administración de vínculos y la sincronización que proporciona esta clase.
Jerarquía de herencia
Requisitos
Encabezado: agents.h
Espacio de nombres: Simultaneidad