|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: I T
Length: 41814 (0xa356)
Types: TextFile
Names: »INCREMENTAL_UPDATE_DIRECTIVES«
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS
└─⟦91c658230⟧ »DATA«
└─⟦458657fb6⟧
└─⟦this⟧
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
└─⟦fc9b38f02⟧ »DATA«
└─⟦9b46a407a⟧
└─⟦this⟧
INSERT
!Commands.Access_List'spec
!Commands.Access_List.Add_Default 'parent'next
!Commands.Access_List.Remove
procedure Remove (Group : String := ">>SIMPLE NAME<<";
For_Object : Name := "<SELECTION>";
Response : String := "<PROFILE>");
--
-- Remove the group from the specified object(s)' access list(s).
-- Changing the access list requires "Owner" access to the containing
-- world. Sends messages to a log that is under control of the
-- Response parameter.
***
INSERT
!Commands.Access_List'spec
!Commands.Access_List.Remove 'parent'next
!Commands.Access_List.Remove_Default
procedure Remove_Default (Group : String := ">>SIMPLE NAME<<";
For_World : Name := "<SELECTION>";
Response : String := "<PROFILE>");
--
-- Remove the group from the specified world(s)' default access list(s).
-- Owner access to each world is required. Sends messages to the log that
-- is under control of the Response parameter. Wildcards are allowed
-- in the name. Any non-world objects referenced are ignored.
***
REPLACE
!Commands.Archive'spec
!Commands.Archive.Save 'parent'next
!Commands.Archive.Save
-- Save a set of objects (files, Ada units, etc.) to a tape or directory
-- such that they may be restored to their original form at a later time
-- or on another system.
-- The Objects parameter specifies the primary objects to be saved. It
-- can be any naming expression. By default, the current image is saved
-- unless there is a selection on that image, in which case the selected
-- object is saved. Normally, the specified object(s) and all contained
-- objects are archived; this feature can be disabled.
-- The Options parameter specifies the type of tape to be written and
-- options to control what is saved. The Options parameter for each of
-- the Archive operations is written as a sequence of option
-- names separated by spaces or commas. Options with arguments are
-- given as an option name followed by an equal sign followed by a
-- value.
---------------------------------------------------------------------------
-- The save options are:
--
-- FORMAT = R1000 | R1000_LONG | ANSI
-- R1000
-- Writes an ANSI tape with the data file followed by the index
-- file. The images of the objects being saved are written
-- directly to the tape. This is the default.
-- R1000_LONG
-- like R1000 format but the data file is written to one ANSI tape
-- and the index file to a second ANSI tape.
-- ANSI
-- Writes the data to a temporary file and then writes both index
-- and data file to a tape using ANSI tape facilities.
-- LABEL=(<any balanced string>)
-- An identifying string written at the head of the archived data.
-- The label parameter allows the user to specify a string that
-- will be put at the front of the index file. When a restore is
-- done the label specified to the restore procedure will be
-- checked against the one on the save tape.
-- NONRECURSIVE
-- Save only the objects resolved to by the Objects parameter. Do
-- not recursively save objects that are inside of other objects.
-- The default is to save the objects mentioned in the Objects
-- parameter and all objects contained in them.
-- To save a world and a subset of its contents one can say:
-- Save (Objects => "[!FOO?,~!FOO.ABC?,~!FOO.DEF?]", ...,
-- Options => "R1000 NONRECURSIVE");
-- AFTER=<time_expression>
-- Only objects changed after the time represented by
-- <time_expression> will be archived. The <time_expression>
-- should be acceptable to the time_utilities.value function.
-- STARTING_AT=<time_expression>
-- the archive will delay until the given time
-- (after the mount request has been processed).
-- EFFORT_ONLY
-- The EFFORT_ONLY option causes a list to be printed of the names
-- of the units that would be saved if the archive command
-- was given with this set of parameters.
-- CODE [=load_proc_list]
-- The CODE option specifies that code is to be archived for the
-- named load procs. If no specification follows the
-- CODE option, the Objects parameter specification is used
-- instead.
-- COMPATIBILITY_DATABASE (CDB) [=<Subsystems>]
-- Causes the full compatibility database for each subsystem
-- specified to be archived. If no subsystems are specified with
-- the option, the Objects parameter specification is used instead.
-- When Ada units in a subsystem are archived, the relevant
-- portions of the subsystem Compatibility Database is
-- automatically archived with them. Therefore, this option is
-- required only in special situations, primarily when one needs to
-- "sync up" a primary and a secondary subsystem.
-- To archive just Compatibility Databases, use
-- Save ("Subsystems", "CDB");
-- To archive compatibility databases with other objects, use
-- Save ("Other Stuff", "CDB=Subsystems");
-- The "Subsystems" and "Other Stuff" specifications will usually
-- describe disjoint sets of objects.
-- IGNORE_CDB
-- Specifies that no compatibility database information is to be
-- saved.
-- LINKS [=<worlds>]
-- Causes only the link pack for each world specified to be archived.
-- If no worlds are specified with the option, the Objects
-- parameter specification is used instead.
-- PREFIX=<naming pattern>
-- A naming pattern that is saved with the archived objects, which
-- can be recalled as the For_Prefix when the data is Restored.
-- When set to an appropriate value, the restorer need not know
-- exactly the names of the archived objects to be able to restore
-- them to a new place. If this option is not given, the value
-- used is derived from the Objects parameter.
-- UNLOAD
-- A boolean option. When True (the default), causes the tape to
-- be rewound and unloaded after the operation is complete. When
-- False, this option causes the tape to be rewound to the beginning
-- and to remain online and available for subsequent requests.
-- When the tape is left online, subsequent requests send a tape-
-- mount request to the operator's console, which must be answered
-- before the tape can be accessed.
-- For downward compatibility the following options are provided.
--
-- DELTA0
-- write a tape which can be read on a delta0 system.
--
-- DELTA1
-- write a tape which can be read on a delta1 system.
--
-- VERSION=<archive_version_number>
-- write a tape that can be read by a version of source
-- earlier than the current one. The argument is a three digit
-- integer. For example, version=440.
-- The Device parameter can be set to the name of a directory. In this
-- case the index and data files are written to that directory. The
-- tape format option is irrelevant in this case.
---------------------------------------------------------------------------
***
REPLACE
!Commands.Archive'spec
!Commands.Archive.Restore 'parent'next
!Commands.Archive.Restore
-- Restore an object or a set of objects from an Archive Tape.
-- If the archive is on a tape then the tape format option given to
-- Restore should be the same as that given during the save. If the
-- archive is in a directory then the device parameter on the restore
-- should be set to that directory.
-- The Objects parameter may be any wildcard pattern specifying the
-- objects to be restored.
--
-- For example:
-- !USERS.FOO.CLI.TEST
-- [!USERS.FOO.TESTS.@, !USERS.FOO.LOGS.ABC]
-- The pattern in the Objects parameter is compared against the full
-- names of the saved objects. The objects whose names match the Objects
-- parameter specification are restored. If the name denotes an Ada
-- unit all of its parts are restored from the tape. If the name denotes
-- a world or directory all of its subcomponents are restored.
-- The Use_Prefix and For_Prefix parameters provide a simple means for
-- changing the names of the archived objects when they are restored.
-- If the Use_Prefix is the special default value, "*", the For_Prefix
-- is ignored and the objects are restored using the names they had when
-- they were saved.
-- If the Use_Prefix is not "*", it must specify the name of an object
-- into which the archived objects can be restored. The name for a
-- restored object is derived from the name of the archived object by
-- replacing the shortest portion of the name matched by the For_Prefix
-- with the value of the Use_Prefix. If the For_Prefix is "*" the
-- archived objects are restored using the Default_Prefix stored with
-- the archived data.
-- For example:
--
-- Restore (Objects => "!A.B.C.D.E",
-- Use_Prefix => "!X.Y",
-- For_Prefix => "!A.B.C");
--
-- will restore to !X.Y.D.E.
-- The For_Prefix may contain wildcard characters (#, @, ?) and the
-- Use_Prefix parameter may contain substitution characters (@ or # only).
-- For example:
--
-- Restore (Objects => "[!A.B.TEST1, !D.E.F.TEST2]"
-- For_Prefix => "?.@"
-- Use_Prefix => "!C.D.@");
--
-- will restore to !C.D.TEST1 and !C.D.TEST2
-- If the object named by the prefix of the target name of an object
-- being restored doesn't exist, that object will be created as a set of
-- nested libraries. So, for example, if the For_Prefix is !A.B and the
-- unit being restored is then !A.B.X.Y.Z and ...X.Y hasn't been saved on
-- the tape then !A, !A.B, !A.B.X, !A.B.X.Y will be created.
---------------------------------------------------------------------------
-- The following options are allowed in the Options parameter:
--
-- FORMAT and LABEL
-- as in the save option.
-- NONRECURSIVE
-- prevents subcomponents of libraries and Ada units from being
-- implicitly restored. for example:
-- Archive.Restore
-- (Objects => "[!USERS.FOO, !USERS.FOO.CLI, !USERS.FOO.CLI.@]",
-- Options => "R1000 NONRECURSIVE");
-- will restore only the named objects and not their substructure.
-- ALL_OBJECTS
-- All specified objects are restored. This is the default.
-- NEW_OBJECTS
-- Only specified objects that don't already exist on the target
-- machine are restored.
-- UPDATED_OBJECTS
-- Only specified objects that already exists on the target are
-- restored, but only if the update time of the archived object
-- is greater than the update time on the target object.
-- CHANGED_OBJECTS
-- Restore both new and updated Objects.
-- EXISTING_OBJECTS
-- Only specified objects that already exists on the target
-- are restored.
-- DIFFERENT_OBJECTS
-- Only specified objects that already exists on the target
-- and have a different update time from the archived object are
-- restored.
-- REPLACE
-- Given an object that is being restored that already exists
-- on the target, this option will cause the restore operation
-- (1) to unfreeze the target object if it is frozen.
-- (2) If the target object is an installed or coded Ada unit
-- with clients, it is demoted to source using Compilation.
-- Demote with the "<ALL_WORLDS>" parameter.
-- Any frozen dependents will be unfrozen.
-- (3) if the parent library into which an object is being
-- restored is frozen, the parent will be unfrozen to restore
-- the object then refrozen.
-- PROMOTE
-- After they are restored, any Ada units will be promoted to the
-- state they were in when they were archived.
-- REMAKE [=NO_MAINS]
-- Like the promote option with the further effect that
-- any objects outside the restore set which were demoted
-- because the replace option was given will be repromoted.
-- If no_mains is specified dependent main programs will not
-- be recoded.
-- GOAL_STATE = ARCHIVED | SOURCE | INSTALLED | CODED
-- Specify that all ada objects restored should (if possible)
-- end up in the given state.
-- EFFORT_ONLY
-- Show what would be restored if restore is run with this
-- set of parameters.
-- CODE [=load_proc_list>]
-- Specifies that just the Code Archive Object for the named
-- load_procs are to be restored. This option is needed only when
-- it is desired to restore a Code Archive Object from an archive
-- that also contains the spec for that load_proc, which is not
-- to be restored.
-- COMPATIBILITY_DATABASE, (CDB) [=<Subsystems>]
-- Specifies that the Compatibility Databases for just the named
-- subsystems are to be restored.
-- IGNORE_CDB
-- Specifies that no compatibility information is to be restored.
-- LINKS [=<worlds>]
-- specifies that just the link packs for the named worlds are to
-- be restored. if no argument is given all link packs of all worlds
-- on the tape are restored.
-- PRIMARY
-- restore the compatibility database as a primary, rather than as a
-- secondary (which is the default).
-- REVERT_CDB
-- allow the compatibility database to be overwritten by the values
-- in the restore.
-- OBJECT_ACL=<acl_value>
-- WORLD_ACL=<acl_value>
-- DEFAULT_ACL=<acl_value>
-- Specifies the Access Control List for restored objects
-- (OBJECT_ACL) and worlds (WORLD_ACL) and the default ACL for
-- restored worlds (DEFAULT_ACL).
-- The value is either an ACL specification or one of the special
-- values RETAIN, ARCHIVED, INHERIT.
-- - RETAIN means to set the final acl of an already existing object
-- to the value it had before the restore. If the object doesn't
-- exist the archived acl value will be used. This is the default.
-- - ARCHIVED means to use the ACL archived with the object.
-- - INHERIT means to use the standard inheritence rules for new
-- versions of objects.
-- BECOME_OWNER
-- Modify the ACL of all restored objects such that the restorer
-- becomes the owner of the restored object.
-- TRAILING_BLANKS=integer
-- Specifies the number of trailing blanks which are to be
-- considered significant when parsing ada units during the
-- restore. If a line ends in more than this number of blanks,
-- the line break will be preserved in the image of the restored
-- ada unit. The default is 2.
-- UNCONTROL
-- specifies that controlled objects which are checked in
-- will be made uncontrolled before being overwritten.
-- objects will be recontrolled at the end of the archive.
-- only valid if the replace option is also given.
-- REQUIRE_PARENTS
-- require that the parent context for a unit to be restored
-- already exists. default is false.
-- VOLUME
-- specifies which volume archive is to create worlds on.
-- VERBOSE
-- Specifies that extra log messages are to be generated describing
-- more fully the steps of the restore process.
-- UNLOAD
-- A boolean option. When True (the default), causes the tape to
-- be rewound and unloaded after the operation is complete. When
-- False, this option causes the tape to be rewound to the beginning
-- and to remain online and available for subsequent requests.
-- When the tape is left online, subsequent requests send a tape-
-- mount request to the operator's console, which must be answered
-- before the tape can be accessed.
---------------------------------------------------------------------------
***
REPLACE
!Commands.Archive'spec
!Commands.Archive.Copy 'parent'next
!Commands.Archive.Copy
-- Copy objects from one location to another, including between
-- machines on the same network.
-- The Objects parameter specifies where the objects are to be gotten
-- from as in an Archive.Save.
-- The Objects and Use_prefix parameters consist of an (optional)
-- machine name followed directly by an objects name.
-- A machine name has the form !!name.
-- Example:
-- !!machine1!users.foo
-- Another acceptable way to say the same thing is !!machine1.users.foo
--
-- The machine name on the objects parameter specifies the source machine.
-- The machine name on the use prefix specifies the destination machine.
-- If either machine is the one on which the command is being given
-- it is not necessary to give the machine name.
-- The non-machine name part of the Objects parameter is a name like that
-- given to the save operation.
--
-- The Use_Prefix/For_Prefix parameters specify where the objects
-- are to go as in Archive.Restore.
-- If the Use_Prefix parameter is "*" or just a machine name, then the
-- source Objects are moved to the same place on the destination machine
-- as specified by the source. The For_Prefix parameter is ignored.
-- If neither Objects nor Use_Prefix have a machine name then the
-- objects are copied from the source to the Use_Prefix on the
-- current machine.
--
-- If it is desired to transfer the same set of objects to multiple
-- targets in the same command a set of target names can be
-- specified as the use_prefix in one of the following two ways.
-- The use prefix can be of the form:
-- [use_prefix1, ..., use_prefixn]<optional_naming_expression>
-- examples:
-- archive.copy (..., use_prefix => "[m1,m2]", ...);
-- archive.copy (..., use_prefix => "[m1,m2,m3]!users.foo", ...);
--
-- The use prefix can be of the form:
-- _filename<optional_naming_expression_beginning_with_!>
-- The filename should contain a list of use_prefix's, one per line.
-- examples:
-- archive.copy (... use_prefix => "_targets", ...);
-- archive.copy (... use_prefix => "_targets!users.foo", ...);
-- where targets is a text file containing (e.g)
-- m1
-- m2
--
-- In both of the above cases the leading !! in machine names is optional.
---------------------------------------------------------------------------
-- The Options parameter has the following options.
--
-- AFTER, CODE, CDB, LINKS, IGNORE_CDB
-- NONRECURSIVE, EFFORT_ONLY
-- as in the save operation.
--
-- ALL_OBJECTS, NEW_OBJECTS, UPDATED_OBJECTS, CHANGED_OBJECTS,
-- EXISTING_OBJECTS, DIFFERENT_OBJECTS
-- PROMOTE, REPLACE, UNCONTROL, REMAKE, GOAL_STATE,
-- PRIMARY, REVERT_CDB, REQUIRE_PARENTS, VOLUME
-- BECOME_OWNER, OBJECT_ACL, WORLD_ACL, DEFAULT_ACL
-- VERBOSE
-- as in the restore operation.
-- ENABLE_PRIVILEGES
-- cause the archive server (and the copy job) to attempt to
-- enable_privileges.
---------------------------------------------------------------------------
-- Examples of calls:
--
-- Copy (Objects => "!USERS.JMK.CLI",
-- Use_Prefix => "!!M1");
--
-- will copy the CLI directory in !USERS.JMK on the
-- current machine to machine M1 !USERS.JMK.CLI.
--
-- Copy (Objects => "!!M2!USERS.OLLIE.CLI");
--
-- will copy !USERS.OLLIE.CLI on M2 to !USERS.OLLIE.CLI on the
-- current machine.
--
-- Copy (Objects => "!!M3!USERS.JMK.CLI.CMD",
-- Use_Prefix => "!USERS.OLLIE",
-- For_Prefix => "!USERS.JMK.CLI");
--
-- will copy the file !USERS.JMK.CLI.CMD on M3 to
-- !USERS.OLLIE.CMD on the current machine.
-- note when repositioning Objects it is necessary to give a
-- for_prefix which is a prefix of the Objects part of the
-- source parameter.
--
-- Copy (Objects => "!!M1!USERS.JMK.ILFORD",
-- Use_Prefix => "!!M2!AGFA",
-- For_Prefix => "!USERS.JMK");
--
-- will copy !USERS.JMK.ILFORD from machine M1 to
-- machine M2 !AGFA!ILFORD
--
-- Copy (Objects => "!USERS.JMK.CLI",
-- Use_Prefix => "!!M1",
-- Options => "REPLACE AFTER=12/25/86");
--
-- will copy those files which have changed since 12/25/86 in
-- !USERS.JMK.CLI on the current machine to machine M1 !USERS.JMK.CLI
-- Any existing files with the same names will be overwritten.
---------------------------------------------------------------------------
***
REPLACE
!Commands.Queue'spec
!Commands.Queue.Add 'parent'next
!Commands.Queue.Add
-- Options :
-- XON_XOFF, RTS, DTR indicate what flow control is to be used.
-- Host => name indicates that a telnet connection is to be used
-- If Host is given, Socket may be specified: Socket => (0, 23).
--
-- Options can also have the value FTP. In this case, Device is
-- the name of a file whose first line is a host name, whose
-- second line is a directory name, whose third line is a suffix
-- to append to each file name, and whose fourth line is the
-- name of a remote passwords file. Each print request will
-- be transferred to the specified host and directory using an
-- FTP login for the host from the specified remote passwords file.
-- The directory name in the file must have any trailing punctuation
-- so that a simple filename can be concatenated to it. A log file
-- is created in !Machine.Queues.Ftp under the device name (which
-- is the simple name of the device file) to record any FTP
-- problems.
***
REPLACE
!Tools.Networking.Tcp_Ip_Boot'spec
!Tools.Networking.Tcp_Ip_Boot 'pragmas'next(3)
!Tools.Networking.Tcp_Ip_Boot
-- Download the Ethernet controller with TCP/IP networking software,
-- and start it. The controller may be an Excelan EXOS-204 with
-- EXOS 8010 software, or a CMC ENP-100i with CMC TCP/IP software.
-- Software for the Excelan EXOS-204 controller is stored in files
-- named EXOS_PREFIX & "EXOS_p_x_y"; where p is the Excelan product
-- number, and x and y are the software version number. For example,
-- the file "EXOS_8010_3_2" contains the 8010 software, version 3.2.
-- Software for the CMC ENP-100i controller is stored in files named
-- EXOS_PREFIX & "CMC_TCP_IP_x_y_z"; where x, y and z are the software
-- version number. For example, the file "CMC_TCP_IP_2_6_1" contains
-- software version 2.6.1.
-- Tcp_Ip_Boot loads the most recent version of the software that is
-- present in the EXOS_PREFIX directory. So, if both versions 3.2 and
-- 3.1 are present, 3.2 will be loaded.
-- HOST_ID_FILE is the name of a text file which begins with the
-- Internet address of this machine, in decimal dotted notation. This
-- value is used to initialize the TCP/IP software, so that it will
-- respond to ARP queries and IP datagrams directed to this address.
-- The file named "TCP_IP_Subnet_Mask", if it exists in the same
-- directory as HOST_ID_FILE, begins with the subnet mask, in decimal
-- dotted notation. Each non-zero bit of the IP subnet mask indicates
-- that the corresponding bit of this machine's IP address is part of
-- the network or subnetwork number.
-- ETHER_ID_FILE is the name of a text file which, if it exists,
-- begins with the Ethernet address of this machine, in decimal dotted
-- notation. If this file does not exist or is illegible, the address
-- will be taken from PROM on the Ethernet controller. Ordinarily
-- this file does not exist; the use of the PROM value is recommended.
-- The HOST_ID_FILE, TCP_IP_Subnet_Mask and/or ETHER_ID_FILE may
-- optionally contain a Machine.Id, written as a decimal number, after
-- the address (and some blank space). If the Machine.Id is present,
-- but does not match Machine.Get_Id, the file contents will not be
-- used. In the case of HOST_ID_FILE, Tcp_Ip_Boot fails, and the
-- controller is not started. In the case of ETHER_ID_FILE, the
-- address in PROM on the controller will be used.
-- The HOST_ID_FILE, TCP_IP_Subnet_Mask and/or ETHER_ID_FILE may
-- optionally contain comments, at the end of a line, marked by --.
-- Decimal dotted notation means the form nn.nn.nn.nn; where each nn
-- is the (decimal) representation of one byte of the address. The
-- most significant byte comes first. For example, network number 89
-- is commonly used for private IP networks: such addresses will have
-- the form "89.nn.nn.nn" in decimal dotted notation.
-- USE_ARP determines whether the TCP/IP software will use ARP
-- (the Address Resolution Protocol) to find the Ethernet addresses
-- of other hosts it wants to talk to, and to advertise its own
-- Ethernet address to other hosts that want to connect to it.
-- ENABLE_LINK_LEVEL, if true, enables the use of Ethernet link level
-- I/O. This form of I/O allows application programs to transmit
-- arbitrary frames on the Ethernet, and to receive frames that do
-- not contain TCP/IP data.
-- USE_CHECKSUMS, if true, enables the calculation and checking
-- of IP header checksums and TCP checksums.
-- DIAGNOSTIC, if true, causes the procedure to do a dry run; that is,
-- scan the code file, calculate memory allocation and initial data
-- settings, and print out information about the results, all without
-- actually affecting the Ethernet controller. This is intended for
-- debugging Tcp_Ip_Boot.
***
INSERT
!Tools.Networking.Transport'spec
!Tools.Networking.Transport.Get_Statistics 'parent'next
!Tools.Networking.Transport.Route
package Route is
-- A table of 4-tuples, used for Transport level routing.
-- See package Transport_Route for background information.
procedure Define (Network : Transport_Defs.Network_Name;
Destination : Transport_Defs.Host_Id;
Subnet_Mask : Transport_Defs.Host_Id;
Route : Transport_Defs.Host_Id;
Status : out Transport_Defs.Status_Code);
procedure Undefine (Network : Transport_Defs.Network_Name;
Destination : Transport_Defs.Host_Id;
Subnet_Mask : Transport_Defs.Host_Id;
Route : Transport_Defs.Host_Id;
Status : out Transport_Defs.Status_Code);
type Iterator is private;
procedure Init (Iter : out Iterator);
procedure Next (Iter : in out Iterator);
function Done (Iter : Iterator) return Boolean;
function Network (Iter : Iterator) return Transport_Defs.Network_Name;
function Destination (Iter : Iterator) return Transport_Defs.Host_Id;
function Subnet_Mask (Iter : Iterator) return Transport_Defs.Host_Id;
function Route (Iter : Iterator) return Transport_Defs.Host_Id;
end Route;
***
INSERT
!Tools.Networking.Transport_Defs'spec
!Tools.Networking.Transport_Defs.Not_Registered 'parent(2)
!Tools.Networking.Transport_Defs.Network_Unreachable
Network_Unreachable : constant Status_Code := 20;
Host_Unreachable : constant Status_Code := 21;
Protocol_Not_Supported : constant Status_Code := 22;
No_Such_Socket : constant Status_Code := 30;
No_Response : constant Status_Code := 31;
Data_Too_Long : constant Status_Code := 32;
***
INSERT
!Tools.Networking.Transport_Name'spec
!Tools.Networking.Transport_Name.Host_Id_To_Host'n(2) 'parent
!Tools.Networking.Transport_Name.Is_Network_Object_Name
-- A network object name consists of "!!", followed by a host
-- name, followed by either "." or "!", followed by the name
-- of an object within that host.
function Is_Network_Object_Name (Name : String) return Boolean;
-- Return true iff the name is a syntactically correct
-- network object name. The host_name need not be defined.
function Network_Object_To_Host (Name : String) return String;
-- If not Is_Network_Object_Name (Name) then raise Constraint_Error.
-- Otherwise, return the host name part of a network object name,
-- without the leading "!!" or trailing punctuation "!" or ".".
-- The returned name is not neccessarily defined.
function Network_Object_To_Rest (Name : String) return String;
-- if not Is_Network_Object_Name (Name) then raise Constraint_Error.
-- Otherwise, return the object name part of a network object name,
-- beginning with "!" (even if the original punctuation was ".").
-- The returned name does not neccessarily denote an extant object.
package Service is
-- A mapping from the name of a service to where it is available;
-- that is, the Network(s) and Socket_Id(s) where its servers wait.
-- This mapping is stored in the text object named
File_Name : constant String := "!Machine.Transport_Services";
-- Within this object, each non-empty text line contains
-- * a Transport_Defs.Network_Name,
-- * a Transport_Defs.Socket_Id,
-- * a service name, and
-- * optionally a machine name;
-- in that order, separated by white space (blanks or tabs).
-- Characters from "--" to the end of the line are a comment. A
-- Network_Name, Socket_Id, service name or machine name must not
-- contain any white space or the character sequence "--". The
-- Transport_Defs.Socket_Id is in decimal dotted notation; that is, a
-- sequence of non-negative decimal integers separated by periods.
-- Each integer represents one or more bytes, as minimally required to
-- represent that integer in binary form, most significant byte first.
-- For example, 258 and 1.2 represent the same Socket_Id, which is
-- expressed in Ada as (1,2). A service name or a machine name should
-- be a valid Ada identifier. The case (upper or lower) of a service
-- name or a machine name is not significant.
-- A line signifies that the named service is available via the given
-- network at the given socket in the given machine; if no machine
-- name is given, the line signifies that the named service is
-- available via the given network at the given socket in all machines
-- not specifically named in other lines.
function Normalize (Service_Name : String) return String;
-- change to lower case, and strip leading or trailing white space.
function Socket (Service_Name, Host_Name : String)
return Transport_Defs.Socket_Id;
function Network (Service_Name, Host_Name : String)
return Transport_Defs.Network_Name;
-- Return the first defined Socket or Network associated with
-- the given Service_Name and Host_Name. If no such specific
-- association is defined, return Socket (Service_Name) or
-- Network (Service_Name), below.
function Socket (Service_Name : String) return Transport_Defs.Socket_Id;
function Network (Service_Name : String)
return Transport_Defs.Network_Name;
-- Return the first defined Socket or Network associated with
-- the given Service_Name, but no specific Host_Name.
-- If no such association is defined, raise
Undefined : exception;
function Local_Socket
(Service_Name : String;
Network : Transport_Defs.Network_Name := "TCP/IP")
return Transport_Defs.Socket_Id;
-- Return the socket at which the given service is available in
-- this machine as identified in the given Network. That is:
-- begin
-- return Socket (Service_Name,
-- Transport_Name.Local_Host_Name (Network));
-- exception
-- when Transport_Name.Undefined =>
-- return Socket (Service_Name);
-- end;
-- This function may raise Transport_Name.Service.Undefined.
function Local_Network
(Service_Name : String;
Network : Transport_Defs.Network_Name := "TCP/IP")
return Transport_Defs.Network_Name;
-- Return the network via which the given service is available in
-- this machine as identified in the given Network. That is:
-- begin
-- return Network (Service_Name,
-- Transport_Name.Local_Host_Name (Network));
-- exception
-- when Transport_Name.Undefined =>
-- return Network (Service_Name);
-- end;
-- This function may raise Transport_Name.Service.Undefined.
-- A service may be available on multiple Socket/Network pairs;
-- they may be found by iterating through all service definitions
-- searching for definitions that match the service and host name:
type Iterator is limited private;
procedure Init (Iter : in out Iterator);
procedure Next (Iter : in out Iterator);
procedure Finish (Iter : in out Iterator); -- Done (Iter) becomes True.
-- You are encouraged to Finish an Iterator when you're done using it,
-- to release any global resource (actions, file handles) it may hold.
function Done (Iter : Iterator) return Boolean;
function Network (Iter : Iterator) return Transport_Defs.Network_Name;
function Socket (Iter : Iterator) return Transport_Defs.Socket_Id;
function Service_Name (Iter : Iterator) return String;
function Host_Name (Iter : Iterator) return String;
function Matches (Iter : Iterator; Service_Name, Host_Name : String)
return Boolean;
-- Return true iff Service_Name (Iter) = Normalize (Service_Name)
-- and Host_Name (Iter) = Normalize (Host_Name).
function Matches (Iter : Iterator; Service_Name : String)
return Boolean;
-- Return true iff Service_Name (Iter) = Normalize (Service_Name)
-- and Host_Name (Iter) = "".
private
type Iterator is
record
File : Text_Io.File_Type;
Last : Natural;
Line : String (1 .. 2048);
end record;
end Service;
***
REPLACE
!Commands.Abbreviations.Print'spec
!Commands.Abbreviations.Print'Spec 'pragmas'next
!Commands.Abbreviations.Print'Spec
-- Prints one or more objects.
-- Additional parameters specify how the object(s) should be printed.
-- The printer used is based on the user via a map set up by the system manager.
--
-- The parameters have the following effects:
-- Object_Or_Image Specifies the object(s) to be printed. Can
-- designate (via value "<cursor>") mail messages,
-- I/O windows, etc.
-- If more than one object is specified, then the print
-- style is based on the first object in the list.
--
-- The following options only apply to printing on laser printers:
--
-- From_First_Page Have the first printed page be as specified, if
-- possible.
-- To_Last_Page Have the last printed page be as specified, if
-- possible.
--
-- Disply_As_Twoup Causes printing in 2-up format if possible
--
-- Display_Border Show a border around each page, if possible.
--
-- Display_Filename Show the filename being printed on each page, if
-- possible.
-- Display_Date Show the file date on each page, if possible.
--
--
-- Ignore_Display_Parameters_For_Postscript
-- If the object being printed is a PostScript file,
-- causes Display_Two_Up, Display_Date, Display_Filename,
-- and Display_Page_Border to be ignored.
--
-- Highlight_Reserved_Words_For_Ada
-- If the object being printed is Ada, use Ada format
-- which highlights keywords, italicizes comments, etc.
--
--
-- The following options apply to all files:
--
-- Other_Options Standard Queue.Print options can be
-- specified here. The options specified here
-- override any other option specifications.
-- The options from above will be combined with these
-- options, if they are still applicable.
--
-- Number_Of_Copies Prints the specified number of copies.
--
-- Printer Use the specified printer. By default, determine
-- the printer based on the user name. (each user
-- has a default printer).
-- Effort_Only If true, don't print anything, but check
-- parameter values and construct the command
-- that would be sent to the Queue.Print command.
--
-- To print a wide listing, in landscape mode on a laser printer, the
-- following options should be used:
--
-- Display_As_Twoup => False
-- Other_Options = "Postscript => (Wide,Spacing=10,Size=10)"
--
--
***
REPLACE
!Commands.Library'spec
!Commands.Library.Create 'parent'next
!Commands.Library.Create
--
-- Create a library of the specified type. The Nil volume represents
-- the 'best' volume (The 'best' volume does not necessarily mean the
-- volume with the most space. The 'best' volume calculation takes into
-- account the percentage of a volume that is available and an estimate
-- of the real consumption of previously allocated worlds). Vol is
-- ignored for Subpackages, which are not control points, and must be on
-- the same volume as their parent. When creating a World, links are
-- copied from Model (unless it is "").
***
INSERT
!Tools.Access_List_Tools'spec
!Tools.Access_List_Tools 'Context
!Tools.Access_List_Tools.Grants
with Action
***
INSERT
!Tools.Access_List_Tools'spec
!Tools.Access_List_Tools.Amend 'parent'next
!Tools.Access_List_Tools.Grants
function Grants (For_List : Acl;
Desired : Access_Class;
User_Name : String := "") return Boolean;
-- Raise Access_Tools_Error if For_List, Desired, or User_Name are
-- illegal. Return true or false depending on whether For_List grants
-- User_Name Desired access. User_Name ="" (the default) performs the
-- check for the identity of the calling job.
procedure Set (For_Object : Directory.Version;
To_List : Acl;
Status : in out Simple_Status.Condition;
Action_Id : Action.Id);
procedure Set_Default (For_World : Name;
To_List : Acl;
Status : in out Simple_Status.Condition;
Action_Id : Action.Id);
-- same as above with an action_id parameter.
procedure Remove (Group : String;
Initial_Acl : Bounded_String.Variable_String;
New_Acl : out Bounded_String.Variable_String;
Group_Found : out Boolean);
--
-- Removes the groups's entry from the specified access list
function Is_Valid_Group (Name : String) return Boolean;
function Is_In_Group (User_Name : String;
Group_Name : String) return Boolean;
-- Return true if the User_Name is a member of Group_Name
***
REPLACE
!Tools.System_Utilities'spec
!Tools.System_Utilities.Get_Board_Info 'parent'next
!Tools.System_Utilities.Get_Board_Info
-- return information about the specified board in the machine. The
-- string identifies the information.
-- Board specifies the particular board:
-- 0 : IOA
-- 1 : SYS/IOC
-- 2 : SEQ
-- 3 : VAL
-- 4 : TYP
-- 5 : FIU
-- 100 : MEM0
-- 101 : MEM1
-- 102 : MEM2
-- 103 : MEM3
-- etc.
***