Classe multi_link_registry

O objeto multi_link_registry é um network_link_registry que gerencia vários blocos de origem ou vários blocos de destino.

Sintaxe

template<class _Block>
class multi_link_registry : public network_link_registry<_Block>;

Parâmetros

_Block
O tipo de dados de bloco que está sendo armazenado no objeto multi_link_registry.

Membros

Construtores públicos

Nome Descrição
multi_link_registry Constrói um objeto multi_link_registry.
Destruidor ~multi_link_registry Destrói o objeto multi_link_registry.

Métodos públicos

Nome Descrição
add Adiciona um link ao objeto multi_link_registry. (Substitui network_link_registry::add.)
begin Retorna um iterador que trata o primeiro elemento no multi_link_registry. (Substitui network_link_registry::begin.)
contains Pesquisa o objeto multi_link_registry em busca de um bloco especificado. (Substitui network_link_registry::contains.)
count Conta o número de itens no objeto multi_link_registry. (Substitui network_link_registry::count.)
remove Remove um link do objeto multi_link_registry. (Substitui network_link_registry::remove.)
set_bound Define um limite superior no número de links que o objeto multi_link_registry pode conter.

Hierarquia de herança

network_link_registry

multi_link_registry

Requisitos

Cabeçalho: agents.h

Namespace: concurrency

add

Adiciona um link ao objeto multi_link_registry.

virtual void add(_EType _Link);

Parâmetros

_Link
Um ponteiro para um bloco a ser adicionado.

Comentários

O método gera uma exceção invalid_link_target se o link já estiver presente no registro ou se um limite já tiver sido definido com a função set_bound e um link tiver sido removido desde então.

begin

Retorna um iterador que trata o primeiro elemento no multi_link_registry.

virtual iterator begin();

Valor de Devolução

Um iterador que trata o primeiro elemento no objeto multi_link_registry.

Comentários

O estado final é indicado por um link NULL.

contém

Pesquisa o objeto multi_link_registry em busca de um bloco especificado.

virtual bool contains(_EType _Link);

Parâmetros

_Link
Um ponteiro para um bloco que deve ser pesquisado no objeto multi_link_registry.

Valor de Devolução

true se o bloco especificado tiver sido encontrado; caso contrário, false.

count

Conta o número de itens no objeto multi_link_registry.

virtual size_t count();

Valor de Devolução

O número de itens no objeto multi_link_registry.

multi_link_registry

Constrói um objeto multi_link_registry.

multi_link_registry();

~multi_link_registry

Destrói o objeto multi_link_registry.

virtual ~multi_link_registry();

Comentários

O método gerará uma exceção invalid_operation se for chamado antes que todos os links estejam removidos.

remove

Remove um link do objeto multi_link_registry.

virtual bool remove(_EType _Link);

Parâmetros

_Link
Um ponteiro para um bloco a ser removido, se encontrado.

Valor de Devolução

true se o link foi encontrado e removido, caso contrário, false.

set_bound

Define um limite superior no número de links que o objeto multi_link_registry pode conter.

void set_bound(size_t _MaxLinks);

Parâmetros

_MaxLinks
O número máximo de links que o objeto multi_link_registry pode conter.

Comentários

Depois que um limite for definido, desvincular uma entrada fará com que o objeto multi_link_registry insira um estado imutável em que novas chamadas para add gerarão uma exceção invalid_link_target.

Confira também

Namespace de simultaneidade
Classe single_link_registry