next up previous contents index
Next: Conclusões Up: Módulos funcionais Previous: Considerações Sobre Distribuição

O Gestor de Tipos

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_quotll_typemanager" e pertence à classe SPM_quotLL_TypeManager".

A classe SPM_quotLL_TypeManager" não é mais que uma subclasse de SPM_quotLL_Dictionary", que representa um dicionário genérico. Assim, as entradas de SPM_quotll_typemanager" são instâncias da classe SPM_quotLL_TypeEntry" e descrevem tipos de envelope.

Além do código genérico herdado de SPM_quotLL_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.



David M. M. de Matos
Thu Jun 29 14:58:09 MET DST 1995