Bonjour,
Mon application possède de grosses classes, je voudrais les partager dans mon fichier IDL. En ce moment, j'accède à mon objet partagé par les méthodes corba de chaque attribut. Je voudrais recupérer mon objet en une seule fois, pour accéder à chacun de mes attributs en local.
J'essaye de tester ceci avec une classe simple possèdant seulement 4 attributs.
MON FICHIER IDL:
module RealTime
{
interface Bus {
long getId();
void setId(in long id);
string getName();
void setName(in string name);
long getCourse();
void setCourse(in long course);
long getService();
void setService(in long service);
Bus getBus();
void setBus(in Bus _bus);
};
};
J'utilise le visibroker sous Delphi ou Linux. J'ai essayé de construire la méthode getBus comme ceci:
constructor TBus.Create;
begin
inherited;
end;
function TBus.getBus : RealTime_i.Bus;
begin
Result := TBus.Create;
with Result do
_id := Bus.getId;
_name := Bus.getName;
_course := Bus.getCourse;
_service := Bus.getService;
end
end;
Ceci compile mais lors de l'exécution, le client se termine brutalement. J'ai essayé également de construire seulement un nouveau objet sans l'initialiser, et c'est identique. Je ne comprend pas pourquoi. Il est apparament impossible de retourner l'objet lui même.
function TBus.getBus : RealTime_i.Bus;
begin
Result := TBus.Create;
end;
Si nous avons une classe de 100 attributs, et on veut consulter cahque attribut, je suis sur qu'il existe une façon de ne pas encoder, transmetre sur le réseau et décoder pour chaque attribut.
Quelqu'un peut il m'aider?
Partager