File : posix-xti-iso.ads


--  This code extracted from file dot5c.tex by Latex.

------------------------------------------------------------------------------
--                                                                          --
--   POSIX Ada95 Bindings for Protocol Independent Interfaces (P1003.5c)    --
--                                                                          --
--                         P O S I X . X T I . I S O                        --
--                                                                          --
--                                  S p e c                                 --
--                                                                          --
--                                                                          --
--  This file is part of an implementation of an Ada95 API for the sockets  --
--  and network support services found in P1003.1g -- Protocol Independent  --
--  Interfaces.  It is integrated with the  FSU Implementation of POSIX.5b  --
--  (FLORIST), an Ada API for  POSIX OS services for use with the GNAT Ada  --
--  compiler and the FSU Gnu Ada Runtime Library (GNARL).                   --
--                                                                          --
--  This package specification contains some text extracted from  IEEE STD  --
--  1003.5: 1990, Information Technology --  POSIX Ada Language Interfaces  --
--  Part 1:  Binding for System Application Program Interface,  as amended  --
--  by IEEE STD 1003.5b: 1996,  Amendment 1: Realtime  Extensions,  and as  --
--  further amended by IEEE Draft STD 1003.5c: 1997, Amendment 2: Protocol  --
--  Independent Interfaces,  copyright 1997 by the Institute of Electrical  --
--  and Electronics Engineers, Inc.                                         --
--                                                                          --
--  The package specifications in the IEEE standards cited above represent  --
--  only a  portion  of  the  documents  and  are  not to be interpreteted  --
--  outside the context  of  the documents.  The standards must be used in  --
--  conjunction  with  the  package   specifications  in  order  to  claim  --
--  conformance.   The IEEE takes no responsibility for and will assume no  --
--  liability for damages resulting from the reader's misinterpretation of  --
--  said  information resulting from its out-of-context nature.   To order  --
--  copies of the IEEE standards,  please contact the  IEEE Service Center  --
--  at 445 Hoes Lane, PO Box 1331, Piscataway, NJ 08855-1331; via phone at  --
--  1-800-678-IEEE, 908-981-1393; or via fax at 908-981-9667.               --
--                                                                          --
--  These  package  specifications are  distributed in  the hope that they  --
--  will  be useful, but  WITHOUT  ANY  WARRANTY; without even the implied  --
--  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.        --
--                                                                          --
------------------------------------------------------------------------------

with POSIX.C;
package POSIX.XTI.ISO is

   ISO_TP_Level :  constant Option_Level := 0;
   type ISO_XTI_Address is new XTI_Address with private;
   type ISO_Option is (Enabled, Disabled);
   function Get_Value (Option_Item : Protocol_Option)
     return ISO_Option;
   procedure Set_Option
      (Option_Item : in out Protocol_Option;
       Level       : in     Option_Level;
       Name        : in     Option_Name;
       To          : in     ISO_Option);
   Residual_Error_Rate : constant Option_Name := 0;
   Priority            : constant Option_Name := 0;
   Protection          : constant Option_Name := 0;
   type Rate is private;
   type Priority_Level is (Top, High, Medium, Low, Default);
   type Protection_Level is new POSIX.Option_Set;
   No_Protection        : constant Protection_Level := Empty_Set;
   Passive_Protection   : constant Protection_Level := Empty_Set;
   Active_Protection    : constant Protection_Level := Empty_Set;
   Absolute_Requirement : constant Protection_Level := Empty_Set;
   function Get_Target_Rate (Item : Rate)
     return Duration;
   procedure Set_Target_Rate
      (Item : in out Rate;
       To   : in     Duration);
   function Get_Minimum_Acceptable_Rate (Item : Rate)
     return Duration;
   procedure Set_Minimum_Acceptable_Rate
      (Item : in out Rate;
       To   : in     Duration);
   function Get_Value (Option_Item : Protocol_Option)
     return Rate;
   procedure Set_Option
      (Option_Item : in out Protocol_Option;
       Level       : in     Option_Level;
       Name        : in     Option_Name;
       To          : in     Rate);
   function Get_Value (Option_Item : Protocol_Option)
     return Priority_Level;
   procedure Set_Option
      (Option_Item : in out Protocol_Option;
       Level       : in     Option_Level;
       Name        : in     Option_Name;
       To          : in     Priority_Level);
   function Get_Value (Option_Item : Protocol_Option)
     return Protection_Level;
   procedure Set_Option
      (Option_Item : in out Protocol_Option;
       Level       : in     Option_Level;
       Name        : in     Option_Name;
       To          : in     Protection_Level);
   --  Dispatching operations for ISO_XTI_Address
   procedure Get_Address
      (Info_Item : in     Connection_Information;
       Address   : in out ISO_XTI_Address);

   Throughput                   : constant Option_Name := 0;
   Connection_Transit_Delay     : constant Option_Name := 0;
   Transfer_Fail_Probability    : constant Option_Name := 0;
   Establishment_Fail_Probability
                                : constant Option_Name := 0;
   Release_Fail_Probability     : constant Option_Name := 0;
   Establishment_Delay          : constant Option_Name := 0;
   Release_Delay                : constant Option_Name := 0;
   Connection_Resilience        : constant Option_Name := 0;
   Expedited_Data               : constant Option_Name := 0;
   type Requested_Rate is private;
   type Throughput_Rate is private;
   type Transit_Delay_Rate is private;
   function Get_Called_Rate (Item : Requested_Rate)
     return Rate;
   procedure Set_Called_Rate
      (Item : in out Requested_Rate;
       To   : in     Rate);
   function Get_Calling_Rate (Item : Requested_Rate)
     return Rate;
   procedure Set_Calling_Rate
      (Item : in out Requested_Rate;
       To   : in     Rate);
   function Get_Throughput_Maximum (Item : Throughput_Rate)
     return Requested_Rate;
   procedure Set_Throughput_Maximum
      (Item : in out Throughput_Rate;
       To   : in     Requested_Rate);
   function Get_Throughput_Average (Item : Throughput_Rate)
     return Requested_Rate;
   procedure Set_Throughput_Average
      (Item : in out Throughput_Rate;
       To   : in     Requested_Rate);
   function Get_Transit_Delay_Maximum (Item : Transit_Delay_Rate)
     return Requested_Rate;
   procedure Set_Transit_Delay_Maximum
      (Item : in out Transit_Delay_Rate;
       To   : in     Requested_Rate);
   function Get_Transit_Delay_Average (Item : Transit_Delay_Rate)
     return Requested_Rate;
   procedure Set_Transit_Delay_Average
      (Item : in out Transit_Delay_Rate;
       To   : in     Requested_Rate);
   function Get_Value (Option_Item : Protocol_Option)
     return Throughput_Rate;
   procedure Set_Option
      (Option_Item : in out Protocol_Option;
       Level       : in     Option_Level;
       Name        : in     Option_Name;
       To          : in     Throughput_Rate);
   function Get_Value (Option_Item : Protocol_Option)
     return Transit_Delay_Rate;
   procedure Set_Option
      (Option_Item : in out Protocol_Option;
       Level       : in     Option_Level;
       Name        : in     Option_Name;
       To          : in     Transit_Delay_Rate);
   TPDU_Length_Maximum          : constant Option_Name := 0;
   Acknowledge_Time             : constant Option_Name := 0;
   Reassignment_Time            : constant Option_Name := 0;
   Preferred_Class              : constant Option_Name := 0;
   Alternative_Class_1          : constant Option_Name := 0;
   Alternative_Class_2          : constant Option_Name := 0;
   Alternative_Class_3          : constant Option_Name := 0;
   Alternative_Class_4          : constant Option_Name := 0;
   Extended_Format              : constant Option_Name := 0;
   Flow_Control                 : constant Option_Name := 0;
   Connection_Checksum          : constant Option_Name := 0;
   Network_Expedited_Data       : constant Option_Name := 0;
   Network_Receipt_Confirmation : constant Option_Name := 0;
   type ISO_COTS_Option is (Enabled, Disabled, Unspecified);
   type Transport_Class is
      (Class_0, Class_1, Class_2, Class_3, Class_4, Unspecified);
   function Get_Value (Option_Item : Protocol_Option)
     return ISO_COTS_Option;
   procedure Set_Option
      (Option_Item : in out Protocol_Option;
       Level       : in     Option_Level;
       Name        : in     Option_Name;
       To          : in     ISO_COTS_Option);
   function Get_Value (Option_Item : Protocol_Option)
     return Transport_Class;
   procedure Set_Option
      (Option_Item : in out Protocol_Option;
       Level       : in     Option_Level;
       Name        : in     Option_Name;
       To          : in     Transport_Class);
   function Get_Value (Option_Item : Protocol_Option)
     return Duration;
   procedure Set_Option
      (Option_Item : in out Protocol_Option;
       Level       : in     Option_Level;
       Name        : in     Option_Name;
       To          : in     Duration);

   Connectionless_Transit_Delay : constant Option_Name := 0;
   Connectionless_Checksum      : constant Option_Name := 0;

private
   
   type ISO_XTI_Address is new XTI_Address with null record;
   type Rate is new Integer;
   type Requested_Rate is new Integer;
   type Throughput_Rate is new Integer;
   type Transit_Delay_Rate is new Integer;
end POSIX.XTI.ISO;