with Ada.Command_Line; with Ada.Text_IO; with CORBA.ORB; with Echo; with PolyORB.Setup.Client; pragma Warnings (Off, PolyORB.Setup.Client); procedure Client is use Ada.Command_Line; use Ada.Text_IO; Sent_Msg, Rcvd_Msg : CORBA.String; myecho : Echo.Ref; begin CORBA.ORB.Initialize ("ORB"); if Argument_Count /= 1 then Put_Line ("usage : client "); return; end if; -- Getting the CORBA.Object CORBA.ORB.String_To_Object (CORBA.To_CORBA_String (Ada.Command_Line.Argument (1)), myecho); -- Checking if it worked if Echo.Is_Nil (myecho) then Put_Line ("main : cannot invoke on a nil reference"); return; end if; -- Sending message Sent_Msg := CORBA.To_CORBA_String (Standard.String'("Hello Ada !")); Rcvd_Msg := Echo.echoString (myecho, Sent_Msg); -- Printing result Put_Line ("I said : " & CORBA.To_Standard_String (Sent_Msg)); Put_Line ("The object answered : " & CORBA.To_Standard_String (Rcvd_Msg)); exception when E : CORBA.Transient => declare Memb : CORBA.System_Exception_Members; begin CORBA.Get_Members (E, Memb); Put ("received exception transient, minor"); Put (CORBA.Unsigned_Long'Image (Memb.Minor)); Put (", completion status: "); Put_Line (CORBA.Completion_Status'Image (Memb.Completed)); end; end Client;