2015-08-11 1 views
0

J'ai un grand nombre de modèles différents définis dans mon code TTCN-3. Par souci de simplicité concentrons-nous sur l'exemple ci-dessous:Fusionner deux objets en TTCN-3

type record Action { 
    charstring name, 
    charstring param optional, 
    charstring state optional 
} 

template Action actionTemplate(param := *, state := *) { 
    name := "Template", 
    param := param, 
    state := state 
} 

var Action actOne := {"Name", omit, "OK"}; 
template Action actTwo := actionTemplate(state := "NOT OK"); 

Y at-il une possibilité de parcourir les champs de actTwo, vérifier s'il y a une valeur définie et mise à jour le champ correspondant à actOne? Je voudrais le faire de manière générique, car je ne connais pas toujours la structure exacte des sous-champs du modèle.

Existe-t-il une possibilité d'itérer sur des champs de modèle comme itérer sur, par ex. dict en Python où nous avons des clés et des valeurs correspondantes?

Répondre

2

Vous pouvez appliquer TTCN-3 extension Advanced Parameterization et implémenter une fonction générique qui vérifie les champs de modèle et peut affecter des valeurs à la variable.

Afin d'obtenir plus d'idées, veuillez partager votre question avec le groupe liéIn TTCN-3 ou in the forum.

+0

À ce stade, j'ai décidé d'écrire un plugin (lib partagé) en C++ pour TTCN-3, qui prend un objet et un modèle, parcourir le modèle et mettre à jour les champs d'objet. Je vais vérifier s'il est possible de faire la même chose avec votre solution. –