Falou-se acima no identificador de tipos para objectos encapsulados por envelopes. Os envelopes podem ser também identificados desta forma, estando cada identificador associado a uma função capaz de criar um envelope do tipo em causa. Cada associação é um elemento de uma tabela que é controlada pelo gestor de tipos.
O gestor de tipos é representado no código por SPM_quot
ll_typemanager" e
pertence à classe SPM_quot
LL_TypeManager".
A classe SPM_quot
LL_TypeManager" não é mais que uma subclasse de
SPM_quot
LL_Dictionary", que representa um dicionário genérico. Assim, as
entradas de SPM_quot
ll_typemanager" são instâncias da classe
SPM_quot
LL_TypeEntry" e descrevem tipos de envelope.
Além do código genérico herdado de SPM_quot
LL_Dictionary",que lhe
permite executar operações genéricas sobre as entradas, foram
adicionadas algumas de carácter específico. Assim, a funcionalidade
compreende métodos que permitem localizar uma entrada encontrar
a entrada correspondente a partir de um envelope, ou criar um novo
envelope, partindo de um identificador de um tipo de envelope.
Devido às dificuldades de manipulação de tipos apresentada pelo C++, o gestor de tipos, sendo capaz de criar novos envelopes, não é capaz de os entregar ao invocador da operação com o tipo correcto. É da responsabilidade deste restaurar a informação relativa ao tipo, quando disso tiver necessidade. Esta operação é análoga à que o envelope realiza para uma carta ou para um respresentante antes de os invocar.