Bonjour.
Alors voila pour expliquer un peu le titre, disons que j'utilise un client et un serveur, que le client transmet un objet au serveur, que le serveur fait des calculs dessus puis le renvoie au client.
Le fichier IDL correspondant :
Jusque la ca va. mais le probleme c'est que JobPart, c'est quelque chose de générique, qui ne contient rien en soi. Il permet juste de gérer le transfert entre le client et le serveur. En fait, sur le client et sur le serveur il y aura des modules qui intégreront les fonctions de calculs, ainsi que des conteneurs spécifiques. Par exemple le module de calcul de Pi se base sur la classe PiPart (qui étend JobPart) pour communiquer entre la partie client et la partie serveur. Le problème c'est qu'il n'est pas possible d'étendre une structure. Donc j'ai essayé d'utiliser une interface a la place, ca ne marche pas, il faut redéfinir plein de méthodes pour implémenter l'interface JobPart ainsi générée. J'ai essayé d'utiliser JobPartPOA (qui est également généré par cette méthode) mais le JobPartHolder n'en veut pas (JobPartPOA implémente JobPartOperations, pas JobPart... ) Je me suis dit qu'en transmettant une string et en sérialisant l'objet, ca devrait marcher, mais la un autre probleme surgit : la string passe pas a cause d'une exception CDRjesaisplusquoi...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 module janem { struct JobPart { string name; }; interface Serveur { void execute(inout JobPart part); }; };
Donc la je suis assez désespéré, j'ai l'impression d'avoir testé toutes les méthodes simples... Si quelqu'un pouvait m'aider ca m'éviterais d'être écoeuré de CORBA avant même d'avoir vraiment comencé à l'utiliser...
Merci d'avance,
Joe.
Partager