From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b4a6373d3a0e9411,start X-Google-Attributes: gid103376,public From: Roga Danar Subject: One for the Apex guys. Date: 1998/11/09 Message-ID: <36472DB8.2498A65B@nospam.com> X-Deja-AN: 409989507 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-Trace: news1.exit109.com 910630654 15296 208.225.73.22 (9 Nov 1998 16:57:34 GMT) Organization: AlphaSoft, Inc. Mime-Version: 1.0 Reply-To: nospam@nospam.com NNTP-Posting-Date: 9 Nov 1998 16:57:34 GMT Newsgroups: comp.lang.ada Date: 1998-11-09T16:57:34+00:00 List-Id: Hi, I am still attempting to simply write to a port using Apex Ada exclusively. I found some code in the Predefined Subsystem that looked like it would allow me to do what I wanted. Other suggestion solution worked fine but I am require to stay with Apex. I am using Rational Apex Ada95. The comments tell me that the Initailize procedure needs to called in elaboration to setup default files. Below is the code and the error message I am getting. Thanks in advance for any help. ###################################### Elaboration code ################################### package Test_Comm_Elab is Ns : constant String := ""; function Null_Str return String; end Test_Comm_Elab; -- -- File Name: test_comm_elab.2.ada -- with Apex_Predefined_Io_Implementation; use Apex_Predefined_Io_Implementation; with Apex_Predefined_Io_Implementation.Text_Io_Support; use Apex_Predefined_Io_Implementation.Text_Io_Support; with Ada.Text_Io; with Ada.Exceptions; use Ada.Exceptions; package body Test_Comm_Elab is procedure Pl (Item : String) renames Ada.Text_Io.Put_Line; function Null_Str return String is begin return Ns; end Null_Str; begin Initialize (Client => Text_Io); exception when E: others => Pl ("Error during elaboration or Initialization call ** " & Ada.Exceptions.Exception_Name (E)); end Test_Comm_Elab; ####################################### Main Test Driver ######################################## -- -- File Name: test_comm.2.ada -- with Apex_Predefined_Io_Implementation; with Apex_Predefined_Io_Implementation.Common_Io; with Apex_Predefined_Io_Implementation.Text_Io_Support; with Apex_Predefined_Io_Implementation.Os_Dependent_Io; --with Win_Show; with Port_Des; with Ada; with Ada.Text_Io; with Ada.Exceptions; with Test_Comm_Elab; pragma Elaborate (Test_Comm_Elab); procedure Test_Comm is package Io_Imp renames Apex_Predefined_Io_Implementation; package Common_Io renames Io_Imp.Common_Io; package Os_Dep_Id renames Io_Imp.Os_Dependent_Io; package T_Io renames Io_Imp.Text_Io_Support; use Io_Imp; procedure Create (File : in out Common_Io.File_Type; Mode : in File_Mode; Kind : in File_Kind; Name : in String := ""; Form : in String := ""; Client : in Client_Kind := Unknown) renames Common_Io.Create; Com1_Name : Port_Des.Port_Name_Type := Port_Des.Port_Com1; Com2_Name : Port_Des.Port_Name_Type := Port_Des.Port_Com2; Com3_Name : Port_Des.Port_Name_Type := Port_Des.Port_Com3; Com4_Name : Port_Des.Port_Name_Type := Port_Des.Port_Com4; type Port_Info_Rec is record Port_File_Kind : Io_Imp.File_Kind := Io_Imp.Associated; Port_File_Mode : Io_Imp.File_Mode := Io_Imp.Inout_File; Com_Port_File : Common_Io.File_Type := Common_Io.Null_File; Com_Port_Name : Port_Des.Port_Name_Type := Com1_Name; Com_Port_Client : Client_Kind := Text_Io; end record; P_Rec : Port_Info_Rec; Com1_Info : constant Port_Info_Rec := P_Rec; Com2_Info : constant Port_Info_Rec := (Port_File_Kind => P_Rec.Port_File_Kind, Port_File_Mode => P_Rec.Port_File_Mode, Com_Port_File => Common_Io.Null_File, Com_Port_Client => Text_Io, Com_Port_Name => Com2_Name); Com3_Info : constant Port_Info_Rec := (Port_File_Kind => P_Rec.Port_File_Kind, Port_File_Mode => P_Rec.Port_File_Mode, Com_Port_File => Common_Io.Null_File, Com_Port_Client => Text_Io, Com_Port_Name => Com3_Name); Com4_Info : constant Port_Info_Rec := (Port_File_Kind => P_Rec.Port_File_Kind, Port_File_Mode => P_Rec.Port_File_Mode, Com_Port_File => Common_Io.Null_File, Com_Port_Client => Text_Io, Com_Port_Name => Com4_Name); type Port_Info_Array is array (Port_Des.Ports_Type) of Port_Info_Rec; Port_Info : Port_Info_Array := (Port_Des.Com1 => Com1_Info, Port_Des.Com2 => Com2_Info, Port_Des.Com3 => Com3_Info, Port_Des.Com4 => Com4_Info); Control_Block : Os_Dep_Id.Os_Control_Block := Os_Dep_Id.Null_Control_Block; -- procedure Show (S : String; -- Caption : in String := " *** Testing *** ") -- renames Win_Show.Display; procedure Putl (Item : String) renames Ada.Text_Io.Put_Line; begin -- T_Io.Initialize (Client => Text_Io); for Port in Port_Des.Com1 .. Port_Des.Com4 loop -- ports loop -- Get a lock -- Putl ("# Getting Lock for: " & Port_Des.Ports_Type'Image (Port)); Common_Io.Acquire (Port_Info (Port).Com_Port_File); -- Open the port -- Putl ("Creating File on port"); Create_Block: begin Create (File => Port_Info (Port).Com_Port_File, Mode => Port_Info (Port).Port_File_Mode, Kind => Io_Imp.Associated, Name => Port_Info (Port).Com_Port_Name, Client => Text_Io); -- T_Io.Create (File => Port_Info (Port).Com_Port_File, -- Mode => Port_Info (Port).Port_File_Mode, -- Name => Port_Info (Port).Com_Port_Name, -- Client => Text_Io); -- declare procedure Pl (File : T_Io.File_Type; Item : String) renames T_Io.String_Io.Put_Line; begin Putl ("# Writing to port #"); Pl (File => Port_Info (Port).Com_Port_File, Item => " ### This is Port testing string ### "); exception when E: others => Putl ("Write failed: " & Ada.Exceptions.Exception_Name (E)); raise; end; exception when E: others => Putl ("Create failed: " & Ada.Exceptions.Exception_Name (E)); end Create_Block; -- -- Control_Block := Common_Io.Os_Dependent_Control; -- -- Os_Dep_Id.Write (Ctrl => Control_Block, -- Item => end loop; Putl ("Test DONE!"); exception when E: others => Putl ("Unknown exception: " & Ada.Exceptions.Exception_Name (E)); end Test_Comm; ######################## ERROR MESSAGE ############################### z:\project\sdf\communication\design\apex.ss\mvs_test.wrk\win_sockets>test_comm Error during elaboration or Initialization call ** ADA.IO_EXCEPTIONS.STATUS_ERROR # Getting Lock for: COM4 Creating File on port Create failed: ADA.IO_EXCEPTIONS.USE_ERROR Test DONE!