DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T

⟦c27699ef9⟧ TextFile

    Length: 38010 (0x947a)
    Types: TextFile
    Names: »TRL_HELP«

Derivation

└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦f6fec0485⟧ 
            └─⟦this⟧ 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦f95d63c89⟧ 
            └─⟦this⟧ 

TextFile


  @node !Tools.Networking.Byte_Defs

  subtype Byte is System.Byte;
  subtype Byte_String is System.Byte_String;
  function "Mod" (X : Byte;
                 Y : Byte) return Byte renames System."Mod";
  function "Rem" (X : Byte;
                 Y : Byte) return Byte renames System."Rem";
  function ">" (X : Byte;
               Y : Byte) return Boolean renames System.">";
  function ">" (X : Byte_String;
               Y : Byte_String) return Boolean renames System.">";
  function "=" (X : Byte;
               Y : Byte) return Boolean renames System."=";
  function "=" (X : Byte_String;
               Y : Byte_String) return Boolean renames System."=";
  function ">=" (X : Byte;
                Y : Byte) return Boolean renames System.">=";
  function ">=" (X : Byte_String;
                Y : Byte_String) return Boolean renames System.">=";
  function "<" (X : Byte;
               Y : Byte) return Boolean renames System."<";
  function "<" (X : Byte_String;
               Y : Byte_String) return Boolean renames System."<";
  function "/" (X : Byte;
               Y : Byte) return Byte renames System."/";
  function "*" (X : Byte;
               Y : Byte) return Byte renames System."*";
  function "-" (X : Byte;
               Y : Byte) return Byte renames System."-";
  function "<=" (X : Byte;
                Y : Byte) return Boolean renames System."<=";
  function "<=" (X : Byte_String;
                Y : Byte_String) return Boolean renames System."<=";
  function "+" (X : Byte;
               Y : Byte) return Byte renames System."+";
  function "&" (X : Byte_String;
               Y : Byte_String) return Byte_String renames System."&";
  function "&" (X : Byte;
               Y : Byte_String) return Byte_String renames System."&";
  function "&" (X : Byte_String;
               Y : Byte) return Byte_String renames System."&";
  function "&" (X : Byte;
               Y : Byte) return Byte_String renames System."&";

  Renames the System.Byte, the System.Byte_String, and the standard
  operations defined on these types.

  The purpose of this package is to simplify porting applications
  software written on top of the Transport Layer to other (non-
  Rational) environments, where these types might be declared
  somewhere other than in package System.  Networking software uses
  these definitions, not those in System.  When porting, you need
  to modify only package Byte_Defs to make use of an alternative
  declaration.
  @node !Tools.Networking.Byte_Defs.Byte

  subtype Byte is System.Byte;

  Specifies an eight-bit byte.

  In portable Ada, this is declared as:
      Type Byte is range 0 .. 255;
  @node !Tools.Networking.Byte_Defs.Byte_String

  subtype Byte_String is System.Byte_String;

  Specifies an unconstrained array of bytes.

  In portable Ada, this is declared as:
      Type Byte_String is array (Integer range <>) of Byte;
      pragma Pack (Byte_String);
  @node !Tools.Networking.Byte_Defs."Mod"

  function "Mod" (X : Byte;
                 Y : Byte) return Byte renames System."Mod";

  Specifies the standard modulus operator.
  @node !Tools.Networking.Byte_Defs."Rem"

  function "Rem" (X : Byte;
                 Y : Byte) return Byte renames System."Rem";

  Specifies the standard remainder operator.
  @node !Tools.Networking.Byte_Defs."="

  function "=" (X : Byte;
               Y : Byte) return Boolean renames System."=";
  function "=" (X : Byte_String;
               Y : Byte_String) return Boolean renames System."=";

  Specifies the standard equality operators.
  @node !Tools.Networking.Byte_Defs.">", "<", ">=", "<="

  function ">" (X : Byte;
               Y : Byte) return Boolean renames System.">";
  function ">" (X : Byte_String;
               Y : Byte_String) return Boolean renames System.">";
  function "<" (X : Byte;
               Y : Byte) return Boolean renames System."<";
  function "<" (X : Byte_String;
               Y : Byte_String) return Boolean renames System."<";
  function ">=" (X : Byte;
                Y : Byte) return Boolean renames System.">=";
  function ">=" (X : Byte_String;
                Y : Byte_String) return Boolean renames System.">=";
  function "<=" (X : Byte;
                Y : Byte) return Boolean renames System."<=";
  function "<=" (X : Byte_String;
                Y : Byte_String) return Boolean renames System."<=";

  Specifies the standard comparison operators.
  @node !Tools.Networking.Byte_Defs."+"

  function "+" (X : Byte;
               Y : Byte) return Byte renames System."+";

  Specifies the standard addition operator.
  @node !Tools.Networking.Byte_Defs."--"

  function "-" (X : Byte;
               Y : Byte) return Byte renames System."-";

  Specifies the standard subtraction operator.

  @node !Tools.Networking.Byte_Defs."*"

  function "*" (X : Byte;
               Y : Byte) return Byte renames System."*";

  Specifies the standard multiplication operator.
  @node !Tools.Networking.Byte_Defs."/"

  function "/" (X : Byte;
               Y : Byte) return Byte renames System."/";

  Specifies the standard division operator.
  @node !Tools.Networking.Byte_Defs."&"

  function "&" (X : Byte_String;
               Y : Byte_String) return Byte_String renames System."&";
  function "&" (X : Byte;
               Y : Byte_String) return Byte_String renames System."&";
  function "&" (X : Byte_String;
               Y : Byte) return Byte_String renames System."&";
  function "&" (X : Byte;
               Y : Byte) return Byte_String renames System."&";

  Specifies the standard catenation operators.
  @node !Tools.Networking.Host_Id_Io

  Package Host_Id_Io provides commands that allow you to convert
  a Host_Id to a displayable string.  The displayable string can
  be written either to Current_Output or to a specified file.  The
  displayable output can be read from Current_Input or from a
  specified file and converted back into a Host_Id.  For example,
  Host_Id (12,11,32,57) is converted to 12.11.32.57.
  @node !Tools.Networking.Host_Id_Io.Get

  function Get return Transport_Defs.Host_Id;

  Reads a Host_Id from the Current_Input file.

  The file should contain a Host_Id in symbolic form.

  The Host_Id is returned.
  @node !Tools.Networking.Host_Id_Io.Get

  function Get (File : Text_Io.File_Type) return Transport_Defs.Host_Id;

  Reads a Host_Id from the Current_Input file.

  The file should contain a Host_Id in symbolic form.

  The Host_Id is returned.
  @node !Tools.Networking.Host_Id_Io.Image

  function Image (Item : Transport_Defs.Host_Id) return String;

  Converts the item into a human-readable string.

  The format of the returned string is:  ##.##.##.##
  @node !Tools.Networking.Host_Id_Io.Put

  procedure Put (Item : Transport_Defs.Host_Id);

  Displays a symbolic representation of the specified Host_Id.

  This procedure writes to the Current_Output file (usually an output
  window).
  @node !Tools.Networking.Host_Id_Io.Put

  procedure Put (File : Text_Io.File_Type;
                Item : Transport_Defs.Host_Id);

  Displays a symbolic representation of the specified Host_Id.

  This procedure writes the value of Item to the specified output
  file.
  @node !Commands.Network

  Package Network provides interactive commands en-
  tered through Command windows and allows user
  queries about the transport connections and hosts.
  @node !Commands.Network.Close_All

  procedure Close_All;

  Closes all open transport connections.

  This procedure calls the Transport.Close procedure on all
  currently open transport connections.  A listing of the connections
  closed is written into the Current_Output file (using package
  !Io.Text_Io).  For each connection, various key items of
  information (obtained from package Transport) are displayed.

  This is a fairly dangerous operation.  If other people on your
  machine are using transport connections, their work will be rudely
  interrupted by calling this procedure.  Use it with care.
  @node !Commands.Network.Show

  procedure Show;

  Shows all open transport connections.

  This procedure displays a listing of all currently open
  transport connections to the Current_Output file (using package
  !Io.Text_Io).  For each connection, various key items of
  information (obtained from package Transport) are displayed.
  @node !Commands.Network.Show_Host

  procedure Show_Host (Host_Name : String := "");

  Shows the address of the specified host.

  This procedure selects the host specified and displays various key
  items of information (obtained from package Transport_Name).
  @node !Commands.Network.Show_Hosts

  procedure Show_Hosts;

  Shows the names and addresses of all known hosts.

  This procedue iterates over all hosts in the database managed by
  package Transport_Name---that is, all hosts whose names are known
  by this system.  For each host, various key items of information
  (obtained from package Transport_Name) are displayed.

  By default, the display is written to the current output window.
  @node !Commands.Network.Time

  procedure Time (From_Host : in String := "");

  Displays the time of day, as reported by the given host.

  This procedure initiates a connection to the time server on
  the given host, receives the time of day, converts it to local
  time, and writes it into the Current_Output file (using package
  !Io.Text_Io).
  @node !Tools.Networking.Network_Product

  Package Network_Product provides a way to check whether the
  Transport Layer utilities have been installed on your machine.
  @node !Tools.Networking.Network_Product.Is_Installed

  function Is_Installed return Boolean;

  Returns true if the Transport Layer utilities have been installed
  on your machine.
  @node !Tools.Networking.Network_Product.Is_Not_Installed

  Is_Not_Installed : exception;

  Occurs when a Transport Layer subprogram is called if the
  Networking product is not installed on your machine.

  Procedure Tcp_Ip_Boot provides the Rational system the necessary
  information to boot the TCP/IP hardware controller board.
  @node !Tools.Networking.Tcp_Ip_Boot

  procedure Tcp_Ip_Boot
                (Use_Arp           : Boolean := True;
                 Enable_Link_Level : Boolean := True;
                 Exos_Prefix       : String  := "!Tools.Network.";
                 Host_Id_File      : String  := "!Machine.Tcp_Ip_Host_Id";
                 Ether_Id_File     : String  := "!Machine.Ethernet_Host_Id";
                 Use_Checksums     : Boolean := True;
                 Diagnostic        : Boolean := False);

  Provides the Rational machine the necessary information to boot the
  TCP/IP board.

  Tcp_Ip_Boot
  @node !Tools.Networking.Transport

  This package provides reliable, connection-oriented data
  communication between machines.  In terms of the International
  Standards Organization Open Systems Interconnection reference
  model, package Transport is the service interface to the Transport
  Layer.

  The underlying protocol is currently TCP/IP, running on an Ethernet
  local area network.  In the future, this package may provide access
  to X.25 or other protocols that provide a transport service.

  Transport services are based on the notions of a connection and
  a socket.  A connection is a reliable data pipe with two ends,
  usually in different machines.  A socket is a location at which
  connections are established.

  Two programs must cooperate to form a connection.  One program (the
  passive program) waits for incoming connections on some socket.
  The other program (the active program), usually on another machine,
  initiates a connection to the same socket.  A connection thus is
  formed between the two programs, and they can transmit data to each
  other.  Once connected, it does not matter which program was active
  and which was passive; either one can transmit data or disconnect
  the connection at any time.

  In each machine, only one program can be waiting for a passive
  connect on each socket at a time.  There can be many programs
  simultaneously waiting on different sockets.

  In TCP/IP, both ends of each connection are associated with
  sockets.  The two sockets do not have to be the same, and they
  usually are not.
  @node !Tools.Networking.Transport.Close

  procedure Close (Connection : Transport.Connection_Id);

  Closes the given connection.

  The underlying resources associated with the connection are
  released and made available for use by other connections.

  If the given connection is connected, it is disconnected.  If the
  given connection is already closed or has never been opened, this
  procedure does nothing.
  @node !Tools.Networking.Transport.Close_All

  procedure Close_All (Owner : Machine.Job_Id);

  Closes all connections owned by a job.

  Each connection is owned by some job.  When a job terminates, all
  connections owned by it are automatically closed (in effect, the
  Close_All procedure is called whenever a job terminates).
  @node !Tools.Networking.Transport.Connect

  procedure Connect
          (Connection    :     Transport.Connection_Id;
           Status        : out Transport_Defs.Status_Code;
           Remote_Host   :     Transport_Defs.Host_Id;
           Remote_Socket :     Transport_Defs.Socket_Id;
           Max_Wait      :     Duration                  := Duration'Last);
  procedure Connect
             (Connection :     Transport.Connection_Id;
             Status     : out Transport_Defs.Status_Code;
             Max_Wait   :     Duration                  := Duration'Last);

  Connects to some remote machine.

  The first form of this procedure (which specifies Remote_Host
  and Remote_Socket parameters) is an active connect; that is, it
  initiates a connection to a particular remote socket.

  The second form (which does not specify a Remote_Host or a
  Remote_Socket parameter) is a passive connect; that is, it waits
  for a connection to arrive on the local socket associated with the
  specified Connection_Id.
  @node !Tools.Networking.Transport.Connection_Id

  type Connection_Id is private;

  Specifies the resources in the machine associated with a transport
  connection.

  This type denotes various resources that are required to build and
  maintain a transport connection.
  @node !Tools.Networking.Transport.Connection_Id_Iterator

  type Connection_Id_Iterator is limited private;

  Denotes an iterator over all open Connection_Ids on all networks to
  which the local machine is currently connected.

  If you want Connection_Ids on only one network, you can determine
  the network associated with each Connection_Id produced by this
  iterator and ignore the ones you do not want.
  @node !Tools.Networking.Transport.Disconnect

  procedure Disconnect (Connection : Transport.Connection_Id);

  Disconnects the specified connection.

  If the specified connection is not connected, the Disconnect
  procedure does nothing.
  @node !Tools.Networking.Transport.Done

  function Done (Iter : Network_Name_Iterator) return Boolean;
  function Done (Iter : Connection_Id_Iterator) return Boolean;

  Indicates that the given iterator is done.

  An iterator is done when it has been moved past the last element in
  the collection over which it iterates.  If function Done (Iter) is
  true, function Value (Iter) is undefined.
  @node !Tools.Networking.Transport.Get_Owner

  function Get_Owner (Connection : Transport.Connection_Id)
                                                    return Machine.Job_Id;

  Returns the owner of the connection.

  Each connection is owned by some job.  Whenever a job terminates,
  all connections owned by it are closed automatically.  By default,
  a connection is owned by the job that opens it.
  @node !Tools.Networking.Transport.Hash

  function Hash (Connection : Transport.Connection_Id) return Natural;

  Calculates a number suitable for indexing into a hash table.

  The same connection always hashes to the same number.  Different
  connections tend to hash to different numbers.
  @node !Tools.Networking.Transport.Init

  procedure Init (Iter : in out Network_Name_Iterator);
  procedure Init (Iter : in out Connection_Id_Iterator);

  Initializes an iterator to the first element of a collection.
  @node !Tools.Networking.Transport.Is_Connected

  function Is_Connected (Connection : Transport.Connection_Id)
                                                           return Boolean;

  Determines whether the specified connection is connected.

  If the connection is closed or has never been opened, a value of
  false is returned.
  @node !Tools.Networking.Transport.Is_Connecting_Active

  function Is_Connecting_Active (Connection : Transport.Connection_Id)
                                                           return Boolean;

  Determines whether the specified connection is in the process of
  establishing an active connection.
  @node !Tools.Networking.Transport.Is_Connecting_Passive

  function Is_Connecting_Passive (Connection : Transport.Connection_Id)
                                                           return Boolean;

  Determines whether the specified connection is in the process of
  establishing a passive connection.
  @node !Tools.Networking.Transport.Is_Open

  function Is_Open (Connection : Transport.Connection_Id) return Boolean;

  Determines whether the specified connection is currently open.

  If the connection is closed or has never been opened, a value of
  false is returned.
  @node !Tools.Networking.Transport.Local_Host

  function Local_Host (Connection : Transport.Connection_Id)
                                            return Transport_Defs.Host_Id;
  function Local_Host (Network : Transport_Defs.Network_Name)
                                            return Transport_Defs.Host_Id;

  Returns the Host_Id associated with the local end of the
  connection.

  If the specified connection is not connected, the Null_Host_Id is
  returned.
  @node !Tools.Networking.Transport.Local_Socket

  function Local_Socket (Connection : Transport.Connection_Id)
                                          return Transport_Defs.Socket_Id;

  Returns the Socket_Id associated with the end of the specified
  connection.

  If the connection is not open, the Null_Socket_Id is returned.
  @node !Tools.Networking.Transport.Network

  function Network (Connection : Transport.Connection_Id)
                                       return Transport_Defs.Network_Name;

  Returns the name of the network associated with the given
  connection.

  If the connection is not open, the Null_Network_Name is returned.
  @node !Tools.Networking.Transport.Network_Name_Iterator

  type Network_Name_Iterator is limited private;

  Specifies an iterator over the names of all networks known to the
  local system.
  @node !Tools.Networking.Transport.Next

  procedure Next (Iter : in out Network_Name_Iterator);
  procedure Next (Iter : in out Connection_Id_Iterator);

  Moves the iterator to the next value.
  @node !Tools.Networking.Transport.Null_Connection_Id

  Null_Connection_Id : constant Connection_Id;

  Denotes no particular connection.

  The function Is_Open (Null_Connection_Id) is false.
  @node !Tools.Networking.Transport.Open

  procedure Open (Connection   : out Transport.Connection_Id;
                 Status       : out Transport_Defs.Status_Code;
                 Network      :     Transport_Defs.Network_Name;
                 Local_Socket :     Transport_Defs.Socket_Id    :=
                                            Transport_Defs.Null_Socket_Id);

  Allocates the resources required to form a connection.

  The Network and Local_Socket parameters must be specified when the
  connection is opened.

  Once opened, the connection can be connected and disconnected many
  times.  It continues to be associated with the same Network and
  Local_Socket parameters.
  @node !Tools.Networking.Transport.Receive

  procedure Receive
             (Connection :     Transport.Connection_Id;
             Status     : out Transport_Defs.Status_Code;
             Data       : out Byte_Defs.Byte_String;
             Count      : out Natural;
             Max_Wait   :     Duration                  := Duration'Last);

  Receives some data.

  This procedure does not wait to fill the data buffer.  As soon as
  any data are received, the procedure returns the data.

  The transport service can store received data in its own buffer
  before you call the Receive procedure.  If there is a lot of
  received data in this buffer when you call the Receive procedure,
  you get as much of the buffered data as will fit in the buffer you
  supply.
  @node !Tools.Networking.Transport.Remote_Host

  function Remote_Host (Connection : Transport.Connection_Id)
                                            return Transport_Defs.Host_Id;

  Returns the Host_Id of the machine at the other end of the
  specified connection.

  If the connection is not connected, the Null_Host_Id is returned.
  @node !Tools.Networking.Transport.Remote_Socket

  function Remote_Socket (Connection : Transport.Connection_Id)
                                          return Transport_Defs.Socket_Id;

  Returns the Socket_Id of the socket at the other end of the
  specified connection.

  If the connection is not connected, the Null_Socket_Id is returned.
  @node !Tools.Networking.Transport.Set_Owner

  procedure Set_Owner (Connection : Transport.Connection_Id;
                      Owner      : Machine.Job_Id);

  Sets the owner of a connection.

  If the connection is not open, do nothing.

  Each connection is owned by some job.  When a job terminates, all
  connections owned by it are closed automatically.  By default, a
  connection is owned by the job that opens it.

  The Set_Owner procedure can be used to give a connection to some
  job other than the one that opened it.
  @node !Tools.Networking.Transport.Transmit

  procedure Transmit
             (Connection :     Transport.Connection_Id;
             Status     : out Transport_Defs.Status_Code;
             Data       :     Byte_Defs.Byte_String;
             Count      : out Natural;
             Max_Wait   :     Duration                   := Duration'Last;
             More       :     Boolean                    := False);

  Transmits data on a connection.

  The Transmit procedure returns when any of the following occur:

  o Transmit has transmitted the data you supplied.

  o Transmit has stored the data you supplied in its own buffers and
    has taken responsibility for delivering it.

  o The timeout (Max_Wait parameter) you specified has expired.

  You can determine how many bytes were transmitted or buffered from
  the Count parameter.

  @node !Tools.Networking.Transport.Value

  function Value (Iter : Network_Name_Iterator)
                                        return Transport_Defs.Network_Name;
  function Value (Iter : Connection_Id_Iterator) return Connection_Id;

  Returns the current value of the iterator.
  @node !Tools.Networking.Transport_Defs

  Package Transport_Defs provides types that are used by
  package Transport and by other networking software.  Package
  Transport_Defs also provides a few simple utility operations
  on those types---for example, hash functions and normalization
  functions.
  @node !Tools.Networking.Transport_Defs.Hash

  function Hash (Value : Network_Name) return Natural;
  function Hash (Value : Host_Id) return Natural;
  function Hash (Value : Socket_Id) return Natural;

  Produces a value suitable for indexing into a hash table.

  The argument need not be normalized; it is normalized before the
  hash value is computed.  So, if two values have the same normalized
  form, they will hash to the same place.
  @node !Tools.Networking.Transport_Defs.Host_Id

  type Host_Id is new Byte_Defs.Byte_String;

  Denotes a computer system that may be accessible via some network.

  Essentially, this address is the network address of a machine.  The
  interpretation of a Host_Id depends on the network.  For a TCP/IP
  network, the Host_Id is an Internet address.  It should be four
  bytes long and should contain the bytes of the Internet address,
  beginning with the most significant byte---that is, the first byte
  of the network number.

  Host_Ids that are shorter than four bytes are right-justified and
  zero-padded to form an Internet address.  Host_Ids that are longer
  than four bytes are truncated, retaining the first four bytes.
  @node !Tools.Networking.Transport_Defs.Image

  function Image (Status : Status_Code) return String;

  Converts a status code into a printable string.
  @node !Tools.Networking.Transport_Defs.Network_Name

  type Network_Name is new String;

  Denotes one of several networks to which this machine can be
  attached.

  Only TCP/IP is currently defined.

  TCP/IP is the U.S. Department of Defense TCP and IP protocols,
  running on an IEEE 802.3 (Ethernet) local area network.
  @node !Tools.Networking.Transport_Defs.Normalize

  function Normalize (Value : Network_Name) return Network_Name;
  function Normalize (Value : Host_Id) return Host_Id;
  function Normalize (Value : Socket_Id) return Socket_Id;

  Converts the given value to an equivalent normalized form.

  Normalization removes nonsignificant filler (for example, leading
  zeros or blanks) and converts characters to a single case.

  Two values are equivalent when their normalized forms are equal.
  @node !Tools.Networking.Transport_Defs.Null_Host_Id

  Null_Host_Id : constant Host_Id (1 .. 0) := (others => 0);

  Specifies a value of Host_Id type that denotes no particular host.
  @node !Tools.Networking.Transport_Defs.Null_Network_Name

  Null_Network_Name : constant Network_Name := "";

  Specifies a value of Network_Name type that denotes no particular
  network.
  @node !Tools.Networking.Transport_Defs.Null_Socket_Id

  Null_Socket_Id : constant Socket_Id (1 .. 0) := (others => 0);

  Specifies a value of Socket_Id type that denotes no particular
  socket.
  @node !Tools.Networking.Transport_Defs.Socket_Id

  type Socket_Id is new Byte_Defs.Byte_String;

  Denotes a socket within the context of a machine.

  A socket is an abstract object, defined by the transport service.
  Conceptually, it is the location at which a connection is
  established.  When a program does a passive connect, it must supply
  a Socket_Id and is said to wait or listen on that socket.  When
  a program does an active connect, it must supply a Host_Id and a
  Socket_Id and is said to call that socket.  Two such programs are
  connected to each other when the caller calls the same socket on
  which the waiter is waiting.

  Many connections can be established on each socket.  However, only
  one program can be waiting on each socket at a time.  There can be
  many programs simultaneously waiting on different sockets.

  The interpretation of a Socket_Id depends on the network.  For
  TCP/IP, the Socket_Id is a TCP port number.  It should be two bytes
  long and should contain the bytes of the port number, beginning
  with the most significant byte.

  Socket_Ids that are shorter than two bytes are right-justified and
  zero-padded to form a port number.  Socket_Ids that are longer than
  two bytes are truncated, retaining the first two bytes.
  @node !Tools.Networking.Transport_Defs.Status_Code

  type Status_Code is new Integer;

  Describes the outcome of a transport operation.

  The meaningful values of this type are declared as constants.  They
  are:

  o Access_Denied:  The operation failed because the caller was not
    authorized to perform it.

  o Connection_Broken:  The operation failed because the given
    connection was disconnected by a failure somewhere in the
    network.

  o Connection_Refused:  The operation failed because the specified
    host refused the connect request.  This usually means that there
    is no program waiting on the specified socket in the specified
    host.

  o Disconnected:  The operation failed because the given connection
    was disconnected by the other host.

  o No_Free_Connections:  The operation failed because it was
    not possible to obtain a local connection (specified by
    Transport.Connection_Id).

  o No_Free_Memory:  The operation failed because it was not possible
    to obtain memory space.

  o No_Free_Sockets:  The operation failed because it was not
    possible to obtain a socket.

  o No_Hardware:  The operation failed because the networking
    hardware is not installed in this machine.

  o No_Local_Resources:  The operation failed because it was not
    possible to obtain some local resource---for example, memory
    space or a control block.

  o No_Such_Host:  The operation failed because there is no known
    host denoted by the given Host_Id.  The specified host may in
    fact exist but may be unreachable.

  o No_Such_Network:  The operation failed because there is no known
    network denoted by the given Network_Name.

  o Not_Connected:  The operation failed because the given
    Connection_Id denoted a connection that was not connected.

  o Not_Downloaded:  The operation failed because the networking
    hardware in this machine has not been successfully downloaded.

  o Not_Initialized:  The operation failed because the networking
    hardware and software on this machine have not been initialized.

  o Not_Open:  The operation failed because the given Connection_Id
    denoted a connection that was not open.

  o Not_Registered:  The operation failed because the calling task
    was not registered to perform it.

  o Ok:  The operation completed normally.

  o Socket_In_Use:  The operation failed because the specified socket
    is already in use by another task.

  o Timed_Out:  The operation did not complete because the specified
    Max_Wait period expired.  This is not necessarily an error; if
    the Max_Wait period is short or zero, it may simply indicate that
    the desired event has not yet occurred.

  o Too_Many_Clients:  The operation failed because some other task
    was simultaneously attempting to do the same operation.
  @node !Tools.Networking.Transport_Name

  Package Transport_Name defines a mapping from machine names
  (strings) to machine addresses (Transport_Defs.Network_Names
  and Transport_Defs.Host_Ids).  For users who prefer to refer to
  machines by their mnemonic names rather than their addresses, this
  package is useful for building user-interface programs.

  This package does not provide a way to update the database of
  names.  Currently, the Transport_Name database is a text file named
  !Machine.Transport_Name_Map.  Each line of the file contains the
  network name, the host identifier, the host name, and the machine
  type.  For example:
      TCP/IP  89.4.27.1  aspen   R1000
      TCP/IP  89.4.8.43  oak     VMS

  To change the database, change this file.  Any tool will
  do, including the Rational Editor, !Commands.Library.Copy,
  !Commands.Archive.Restore, or FTP.
  @node !Tools.Networking.Transport_Name.Done

  function Done (Iter : Host_Iterator) return Boolean;

  Indicates that the given iterator is done.

  An iterator is done when it has been moved past the last element in
  the collection over which it iterates.  If function Done (Iter) is
  true, function Value (Iter) is undefined.
  @node !Tools.Networking.Transport_Name.Host_Id_To_Host

  function Host_Id_To_Host (Network : Transport_Defs.Network_Name;
                           Host    : Transport_Defs.Host_Id) return String;
  function Host_Id_To_Host (Host : Transport_Defs.Host_Id) return String;

  Converts a host address to a string name.
  @node !Tools.Networking.Transport_Name.Host_Iterator

  type Host_Iterator is limited private;

  Specifies an iterator over all named hosts on all networks.

  If you want hosts on only one network, you can determine the
  network associated with each host name produced by this iterator
  and ignore the ones that you do not want.
  @node !Tools.Networking.Transport_Name.Host_To_Host_Id

  function Host_To_Host_Id (Host_Name : String)
                                            return Transport_Defs.Host_Id;

  Converts a string name to a Host_Id.
  @node !Tools.Networking.Transport_Name.Host_To_Machine_Type

  function Host_To_Machine_Type (Host_Name : String) return String;

  Reads the name of a machine and returns a string specifying the
  type of machine.
  @node !Tools.Networking.Transport_Name.Host_To_Network_Name

  function Host_To_Network_Name (Host_Name : String)
                                       return Transport_Defs.Network_Name;

  Converts a string name to a Network_Name.
  @node !Tools.Networking.Transport_Name.Init

  procedure Init (Iter : in out Host_Iterator);

  Initializes an iterator.

  @node !Tools.Networking.Transport_Name.Local_Host_Name

  function Local_Host_Name (Network : Transport_Defs.Network_Name)
                                                           return String;

  Reads the name of the network and returns the name of the machine
  in which the caller is running.
  @node !Tools.Networking.Transport_Name.Next

  procedure Next (Iter : in out Host_Iterator);

  Moves the iterator to the next value.
  @node !Tools.Networking.Transport_Name.Undefined

  Undefined : exception;

  Indicates that the caller has tried to resolve a mapping that is
  not defined (not in the database).
  @node !Tools.Networking.Transport_Name.Value

  function Value (Iter : Host_Iterator) return String;

  Returns the current value of the iterator.
  @node !Commands.Transport_Route

  The Rational system maintains a table used for routing IP packets,
  including TCP/IP and UDP/IP packets.  When a packet is sent to a
  machine on some other network, the packet must be routed through a
  gateway and not directly to the destination machine.  Some gateways
  do not respond to ARP (Address Resolution Protocol) queries for
  destination machines whose traffic they carry; therefore, the
  sending machine must know the Internet address of the gateway in
  order to transmit packets to it.

  The routing table contains a list of entries, each containing a
  route (the Internet address of a gateway) with a destination that
  can be reached by the route.  The destination may be a specific
  Host_Id (Internet address), a network number (signifying all hosts
  in that network), or the Null_Host_Id (signifying any remote host).
  There can be multiple entries for each route, identifying multiple
  hosts or networks accessible by way of the specified route.  The
  table is kept ordered, starting with all host-specific entries,
  followed by all network-specific entries, followed by the default
  entry.  Within each group, entries are maintained in the order in
  which they were defined.  When the host is deciding where to send
  an outgoing packet, it searches the table entries in order.

  The specification of the procedures in package Transport_Route
  follows:
      with Transport_Defs;
      package Transport_Route is
         procedure Show (Route : String := "";
                        Destination : String := "";
                        Network : Transport_Defs.Network_Name := "";
                        Response : String := "<PROFILE>");
         procedure Load (Table : String := "!Machine.Transport_Routes";
                        Form : String := "";
                        Response : String := "<PROFILE>");

         procedure Define (Route : String;
                          Destination : String := "";
                          Network : Transport_Defs.Network_Name := "IP";
                          Response : String := "<PROFILE>");
         procedure Undefine (Route : String;
                            Destination : String := "";
                            Network : Transport_Defs.Network_Name := "IP";
                            Response : String := "<PROFILE>");
      end Transport_Route;
  @node !Commands.Transport_Route.Define

  procedure Define (Route       : String;
                   Destination : String                     := "";
                   Network     : Transport_Defs.Network_Name := "IP";
                   Response    : String                     := "<PROFILE>");

  Adds one entry to the routing table, with the given values.

  If there is already such an entry in the table, the procedure does
  nothing.
  @node !Commands.Transport_Route.Load

  procedure Load (Table    : String := "!Machine.Transport_Routes";
                 Form     : String := "";
                 Response : String := "<PROFILE>");

  Loads routing information from the named table into the system's
  routing table.

  The procedure reads the object named by the Table parameter,
  using package !Io.Text_Io, and passes the specified form to
  Text_Io.Open.  For each line in the table, the Load procedure
  calls the Define procedure with parameter values parsed from the
  line.
  @node !Commands.Transport_Route.Show

  procedure Show (Route       : String                     := "";
                 Destination : String                     := "";
                 Network     : Transport_Defs.Network_Name := "";
                 Response    : String                     := "<PROFILE>");

  Creates a text listing of routing table entries and writes it to
  the Current_Output file.

  Only entries that match the given Route, Destination, and Network
  values are listed.  In each case, the value "" is a wildcard that
  matches all entries.
  @node !Commands.Transport_Route.Undefine

  procedure Undefine
                (Route       : String;
                 Destination : String                     := "";
                 Network     : Transport_Defs.Network_Name := "IP";
                 Response    : String                     := "<PROFILE>");

  Deletes the entry with the given values from the routing table.

  If there is no such entry in the table, the procedure does nothing.