C'est la structure nommée V dans l'ontologie. Dans DIESE, c'est une instance de la classe InstructionAllocation.
Lorsqu'on dispose d'un pointeur sur une instance de PrimitiveActivity, on accède à la structure V de la manière suivante :
Entity* pInst = ......; // l'instance de PrimitiveActivity Entity* pV_alloc = pInst->GetEntityConstValue(ALLOCATION_ATTRIBUTE);
nom C++ symbole de classe nom de classe classe des éléments classes des composants InstructionAllocation INSTRUCTION_ALLOCATION instructionAllocation ALLOCATED_OPERATED_OBJECT_SET ALLOCATED_OPERATION_RESOURCE_SET ALLOCATED_PERFORMER_SET ALLOCATED_OPERATION_SET ALLOCATED_DESTINATION_OBJECT_SET Les services offerts par cette classe sont les suivants. de manière générale, ils retournent un tables de pointeurs sur des entités (pEntityTab*) :
ExtractRscSet()
Renvoie la liste de toutes les ressources allouées à l'activité. Aux ressources en position d'objet opéré dans l'allocation (classe OperatedObject), on substitue l'entité qui est la valeur du descripteur ResourceEntity de l'objet opéré. La liste est complétée par le pointeur sur l'opération en jeu (classe Operation).
ExtractPerfSet()
Renvoie la liste de toutes les ressources, instances directes ou ndirectes de Performer, allouées à l'activité.
ExtractOOSet()
Renvoie la liste de toutes les ressources en position d'objet opéré dans l'allocation (classe OperatedObject). On leur substitue l'entité qui est la valeur du descripteur ResourceEntity de l'objet opéré.
ExtractOtRscSet()
Renvoie la liste de toutes les ressources en position de ressource propre de l'opération, dans l'allocation.
ExtractRscSetButOperation()
Renvoie la même liste que ExtractRscSet, à l'exception du pointeur sur l'opération en jeu.
Un exemple d'exploitation de ces services est le suivant :
... Entity* pInst = ......; // l'instance de PrimitiveActivity Entity* pV_alloc = pInst->GetEntityConstValue(ALLOCATION_ATTRIBUTE); pEntityTab* perfList = pV_alloc->ExtractPerfSet(); int nbPerf = perfList->size(); for(int k=0;k<nbPerf;k++) { Performer* pPerf = (Performer*)perfList->get_nth(k); printf("\npuissance de '%s' = %f", pPerf->InstanceName(), pPerf->GetIntVarValue(POWER)); } ...