est ce que vous pouvez me donnez un exemple de lutilisation de out(idl) et son implementation en C Builder5?
merci davance.
est ce que vous pouvez me donnez un exemple de lutilisation de out(idl) et son implementation en C Builder5?
merci davance.
Bonjour,
Je ne suis pas un pro mais chez moi cet exemple marche:
Dans idl, j'ai par exemple:
interface InterfaceProcedureCORBA
{
ResultatProcedure(in string Nom, out string Param, in string IdTraitement);
}
Je l'implémente comme ça sur le serveur:
void InterfaceProcedureCORBAImpl::ResultatProcedure(const char* Nom, char *& Param, const char * IdTraitement)
{
char * c=new char[20];
// ce que fait la procedure...
//exemple:
c="2";
Param=c;
}
Je l'appelle par exemple comme ça (depuis le client):
CORBA::String_var PC;
interfaceProcedureCORBA->ResultatProcedure("",PC.out(),"");
Param=PC.out();
voila.
bonne chance
manuel
et pour un Corba::short ?.... j'ai un serveur c++ et un client java, mais dans le cas qui m'interesse c'est le code de calcul en c++ qui envoye une requete au client auquel on a associe un nouveau poa pour voir si l'utilisateur a appuye sur le bouton stop. donc en fait en idl ca me donne ca
interface monInterface{
void isStop (out short entierStop)
}
cote java j'implemente comme suit :
public void isStop (org.omg.CORBA.ShortHolder eniterStop){
entierStop.value() =2;
}
ou dois je utiliser org.omg.CORBA.ShortHolder ou un short tout simplement?
et cote c++ pour l'implementation ce doit etre un CORBA::Short_out pour qu'il me retourne le int c++?. ou bien un CORBA::Short.
J'utilise visibroker sur sun (4.5.0) et sgi (4.0 et ca fut galere pour le porter sur sgi au passage)
merci d'avance,
Salut
en java, il n y a pas de notion de passage de parametre en out car il n y a pas de passage par reference ni par adresse.
void maclass::mafct(short monshort)
{
monshort=1; // n est pas modifie pour la fonction appelante
}
donc le holder est necessaire, en effet l adresse du holder n est pas modifié, c'est juste son contenu
void maclass::mafct(org.omg.CORBA.ShortHolder eniterStop)
{
entierStop.value=1;
}
Il ne faut pas confondre vitesse et precipitation....
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager