--| --|Item: Ada PCTE Binding --|$Revision: 0.2 $ --|$State: Prototype $ --| --|The Version Description Document (VDD) included with this release provides --|detailed information regarding the condition of the software. The "User --|Feedback" section of the VDD describes how to obtain additional information. --| --|Distribution Statement "A", per DoD Directive 5230.24 --|Authorized for public release; distribution is unlimited. --| --|Copyright (c) 1992, Paramax Systems Corporation, Reston, Virginia --|Copyright is assigned to the U.S. Government, upon delivery thereto, --|in accordance with the DFAR Special Works Clause. --| --|Developed by: Paramax Systems Corporation, --| --|This software, developed under the Software Technology for Adaptable, --|Reliable Systems (STARS) program, is approved for release under --|Distribution "A" of the Scientific and Technical Information Program --|Classification Scheme (DoD Directive 5230.24) unless otherwise indicated. --|Sponsored by the U.S. Defense Advanced Research Projects Agency (DARPA) --|under contract F19628-88-D-0031, the STARS program is supported by the --|military services, SEI, and MITRE, with the U.S. Air Force as the executive --|contracting agent. --| --|Permission to use, copy, modify, and comment on this software and its --|documentation for purposes stated under Distribution "A" and without fee --|is hereby granted, provided that this notice appears in each whole or --|partial copy. This software retains Contractor indemnification to --|the Government regarding copyrights pursuant to the above referenced --|STARS contract. The Government disclaims all responsibility against --|liability, including costs and expenses for violation of proprietary --|rights, or copyrights arising out of the creation or use of this --|software. --| --|In addition, the Government, Paramax, and its subcontractors disclaim all --|warranties with regard to this software, including all implied warranties --|of merchantability and fitness, and in no event shall the Government, --|Paramax, or its subcontractor(s) be liable for any special, indirect or --|consequential damages or any damages whatsoever resulting from the loss of --|use, data, or profits, whether in action of contract, negligence or other --|tortious action, arising in connection with the use or performance of this --|software. --| --|$Log $ --| -- Version Information -- ^^^^^^^^^^^^^^^^^^^ -- -- PCTE - Ada Language Interface. -- Version: 0.2. -- Release Date: November 30, 1992. -- Compiled under SUN OS 4.1.2 using SunAda 1.0 -- -- -- General Information -- ^^^^^^^^^^^^^^^^^^^ -- -- This is an alpha release of the Paramax STARS Ada binding to Emeraude's -- PCTE 1.5 using the ECMA PCTE Ada binding specifications. The binding -- is incomplete in this release. See the Version Description Document -- provided with this alpha release for information on which interfaces -- have been implemented. It is expected that future releases will -- expand the number of interfaces implemented. The interfaces defined -- herein are subject to change. -- -- For further information, contact the authors: -- -- -- Robert Smith -- Paramax Systems Corp. -- Valley Forge Labs -- 70 E. Swedesford Road -- Paoli, PA. 19301 -- smith@prc.unisys.com (current) -- smith@vfl.paramax.com (future) -- +1 215 648-2402 -- -- Michael Horton -- Paramax Systems Corp. -- Valley Forge Labs -- 70 E. Swedesford Road -- Paoli, PA. 19301 -- horton@prc.unisys.com (current) -- horton@vfl.paramax.com (future) -- +1 215 648-2527 -- -- --% This package will be fully supported for Ada binding to PCTE 1.5 package Pcte_error is type handle is limited private ; -- Pcte_error.handle is the type of the parameter status of mode in -- which most subprograms have. An error handle has two associated -- properties, called record and raise. If record is set and an -- error condition occurs, the enumeration value indicating the error -- condition is recorded in the error handle and may be interrogated. -- If raise is set and an error condition occurs, an exception is -- raised. Both record and raise may be set. Error handles are -- initialised to EXCEPTION_ONLY. EXCEPTION_ONLY: constant Pcte_error.handle; -- EXCEPTION_ONLY is a value of an error handle which has raise set, -- record unset, and has recorded error condition NO_ERROR. --------------------------------- PCTE EXCEPTIONS --------------------------------- -- The error conditions defined in ECMA-149, appendix C, and error -- conditions defined in this binding, are divided into a number of sets, -- each corresponding to an exception. The exception which may be raised -- by each error condition is shown by a code letter against the -- error condition name in the list below. The exceptions, their -- code letters, and descriptions of the general nature of the -- corresponding error conditions are as follows. ERROR_WITH_USAGE : exception ; -- U -- indicates that the intended usage of PCTE is an error. ERROR_WITH_STATE : exception ; -- S -- indicates that the call is an error in the context of the state of the object base. ERROR_WITH_IDENTIFICATION : exception ; -- I -- indicates that the parameters fail to identify a valid -- entity of the intended kind. ERROR_WITH_PARAMETER : exception ; -- P -- indicates a fundamental error in the values of one or more parameters, -- such that the call could not be valid under any circumstances ERROR_WITH_DEVICE : exception ; -- D -- indicates that there is a problem with the use of a device or a volume. ERROR_WITH_NETWORK : exception ; -- N -- indicates that there is a problem with access over the network. ERROR_FROM_INTERRUPTED : exception ; -- R -- indicates that the operation has been interrupted. ERROR_FROM_TIMEOUT : exception ; -- T -- indicates that the operation has been timed out. ERROR_WITH_TIME : exception ; -- indicates that there is a problem in the use of the operations -- "time_of", "+" or "-" of the package Pcte.calendar for the same -- reasons as defined by TIME_ERROR in the package CALENDAR. --------------------------------- PCTE ERROR CODES --------------------------------- type error_code is ( NO_ERROR, -- Errors defined in ECMA-149: Corresponding Exceptions: ACCESS_CONTROL_IS_NOT_GRANTED, -- S ACCESS_MODE_IS_NOT_ALLOWED, -- S ACCOUNTING_LOG_IS_NOT_ACTIVE, -- U ACTIVITY_STATUS_IS_INVALID, -- S ACTIVITY_WAS_NOT_STARTED_BY_CALLING_PROCESS, -- U ARCHIVE_HAS_ARCHIVED_OBJECTS, -- U ARCHIVE_IS_INVALID_ON_DEVICE, -- U ATTRIBUTE_TYPE_IS_INVALID, -- I ATTRIBUTE_TYPE_IS_NOT_APPLIED_TO_OBJECT_OR_LINK_TYPE, -- U ATTRIBUTE_VALUE_LIMIT_WOULD_BE_EXCEEDED, -- P AUDIT_FILE_IS_NOT_ACTIVE, -- U AUDIT_FILE_RECORD_LENGTH_LIMIT_WOULD_BE_EXCEEDED, -- P BREAKPOINT_IS_NOT_DEFINED, -- I CARDINALITY_IS_INVALID, -- U CATEGORY_IS_BAD, -- P CONFIDENTIALITY_CONFINEMENT_WOULD_BE_VIOLATED, -- S CONFIDENTIALITY_LABEL_CRITERION_IS_NOT_SELECTED, -- U CONFIDENTIALITY_WOULD_BE_VIOLATED, -- S CONNECTION_IS_DENIED, -- N CONSUMER_GROUP_IS_IN_USE, -- S CONSUMER_GROUP_IS_KNOWN, -- S CONSUMER_GROUP_IS_UNKNOWN, -- I CONTENTS_IS_NOT_EMPTY, -- S CONTENTS_IS_NOT_OPEN, -- S CONTENTS_OPERATION_IS_INVALID, -- S CONTROL_IS_NOT_GRANTED, -- S DATA_ARE_NOT_AVAILABLE, -- S DESTINATION_OBJECT_TYPE_IS_INVALID, -- I DEVICE_EXISTS, -- U DEVICE_IS_BUSY, -- D DEVICE_IS_IN_USE, -- D DEVICE_IS_UNKNOWN, -- I DEVICE_SPACE_IS_FULL, -- D DISCRETIONARY_ACCESS_IS_NOT_GRANTED, -- S DISCRETIONARY_GROUP_ALREADY_HAS_THIS_SUBGROUP, -- U DISCRETIONARY_GROUP_IDENTIFIER_IS_IN_USE, -- U DISCRETIONARY_GROUP_IDENTIFIER_IS_INVALID, -- I DISCRETIONARY_GROUP_IS_ALREADY_ENABLED, -- U DISCRETIONARY_GROUP_IS_IN_USE, -- U DISCRETIONARY_GROUP_IS_KNOWN, -- U DISCRETIONARY_GROUP_IS_NOT_ADOPTABLE, -- U DISCRETIONARY_GROUP_IS_NOT_A_SUBGROUP, -- U DISCRETIONARY_GROUP_IS_NOT_ENABLED, -- U DISCRETIONARY_GROUP_IS_PREDEFINED, -- U DISCRETIONARY_GROUP_IS_REQUIRED, -- U DISCRETIONARY_GROUP_IS_UNKNOWN, -- I DISCRETIONARY_GROUP_WOULD_BE_IN_INVALID_GRAPH, -- U ENUMERATION_VALUE_TYPE_IS_TOO_SHORT, -- P EVALUATION_STATUS_IS_INCONSISTENT_WITH_EVALUATION_POINT, -- S EXECUTION_CLASS_HAS_NO_USABLE_EXECUTION_SITES, -- U EXECUTION_SITE_IS_NOT_AVAILABLE, -- S EXECUTION_SITE_IS_NOT_IN_EXECUTION_CLASS, -- U EXTERNAL_LINK_IS_BAD, -- U EXTERNAL_LINK_IS_NOT_DUPLICABLE, -- U FOREIGN_DEVICE_IS_UNKNOWN, -- I FOREIGN_OBJECT_ACCESS_IS_DENIED, -- S FOREIGN_SYSTEM_IDENTIFICATION_IS_INVALID, -- I FOREIGN_SYSTEM_IS_INACCESSIBLE, -- S FOREIGN_SYSTEM_IS_INVALID, -- S FOREIGN_SYSTEM_IS_UNKNOWN, -- I IMAGE_IS_ALREADY_ASSOCIATED, -- U INTEGRITY_CONFINEMENT_WOULD_BE_VIOLATED, -- S INTEGRITY_LABEL_CRITERION_IS_NOT_SELECTED, -- S INTEGRITY_WOULD_BE_VIOLATED, -- S INTERPRETER_IS_NOT_AVAILABLE, -- U KEY_ATTRIBUTE_TYPE_UNAPPLY_IS_FORBIDDEN, -- U KEY_IS_BAD, -- P KEY_TYPES_ARE_MULTIPLE, -- P KEY_TYPE_IS_BAD, -- P KEY_UPDATE_IS_FORBIDDEN, -- P LABEL_IS_INVALID, -- P LABEL_IS_OUTSIDE_RANGE, -- S LABEL_RANGE_IS_BAD, -- P LAN_ERROR_EXISTS, -- N LIMIT_WOULD_BE_EXCEEDED, -- U LINK_ATTRIBUTE_TYPE_IS_INVALID, -- U LINK_DESTINATION_IS_NOT_VISIBLE, -- U LINK_DOES_NOT_EXIST, -- I LINK_EXISTS, -- U LINK_NAME_OR_VALUE_LIMITS_ARE_EXCEEDED, -- P LINK_TYPE_IS_INVALID, -- I LINK_TYPE_IS_NOT_APPLIED_TO_OBJECT_TYPE, -- U LINK_TYPE_IS_UNKNOWN, -- I LINK_TYPE_PROPERTIES_ARE_INCONSISTENT, -- P LINK_TYPE_PROPERTIES_ARE_INCONSISTENT_WITH_KEY_TYPES, -- P LOCK_COULD_NOT_BE_ESTABLISHED, -- U LOCK_IS_NOT_EXPLICIT, -- U LOCK_MODE_IS_INVALID, -- P LOCK_MODE_IS_NOT_ALLOWED, -- U LOCK_MODE_IS_TOO_STRONG, -- U LOWER_BOUND_WOULD_BE_VIOLATED, -- U MANDATORY_CLASS_IS_ALREADY_DOMINATED, -- U MANDATORY_CLASS_IS_UNKNOWN, -- I MANDATORY_CLASS_NAME_IS_IN_USE, -- S MAXIMUM_USAGE_MODE_WOULD_BE_EXCEEDED, -- P MEMORY_ADDRESS_IS_OUT_SPACE, -- P MESSAGE_DOES_NOT_EXIT, -- U MESSAGE_IS_NOT_KNOWN, -- U MESSAGE_QUEUE_HAS_BEEN_DELETED, -- U MESSAGE_QUEUE_HAS_BEEN_WOKEN, -- U MESSAGE_QUEUE_HAS_NO_HANDLER, -- U MESSAGE_QUEUE_IS_BUSY, -- S MESSAGE_QUEUE_IS_NOT_RESERVED, -- U MESSAGE_QUEUE_IS_RESERVED, -- U MESSAGE_QUEUE_IS_TOO_BIG, -- S MESSAGE_TYPE_IS_NOT_IN_QUEUE, -- S NON_BLOCKING_IO_IS_INVALID, -- U NOTIFIER_KEY_DOES_NOT_EXIST, -- S NOTIFIER_KEY_EXISTS, -- S OBJECT_ARCHIVING_IS_INVALID, -- U OBJECT_CRITERION_IS_NOT_SELECTED, -- U OBJECT_HAS_COPIES, -- U OBJECT_HAS_EXTERNAL_LINKS_PREVENTING_DELETION, -- U OBJECT_HAS_INTERNAL_LINKS_PREVENTING_DELETION, -- U OBJECT_HAS_LINKS_PREVENTING_DELETION, -- U OBJECT_HAS_NO_LOCK, -- U OBJECT_IS_ALREADY_IN_RESOURCE_GROUP, -- U OBJECT_IS_ALREADY_MASTER, -- U OBJECT_IS_ARCHIVED, -- U OBJECT_IS_DELETED, -- U OBJECT_IS_DESTINATION_OF_EXCLUSIVE_LINK, -- U OBJECT_IS_INACCESSIBLE, -- U OBJECT_IS_IN_USE, -- U OBJECT_IS_LOCKED, -- U OBJECT_IS_NOT_ARCHIVED, -- U OBJECT_IS_NOT_DISCRETIONARY_GROUP_SUBTYPE, -- U OBJECT_IS_NOT_IN_RESOURCE_GROUP, -- U OBJECT_IS_NOT_ON_ADMINISTRATION_VOLUME, -- U OBJECT_IS_NOT_ON_MASTER_ADMINISTRATION_VOLUME, -- U OBJECT_IS_NOT_REPLICABLE, -- U OBJECT_IS_NOT_REPLICATED_ON_VOLUME, -- U OBJECT_IS_NOT_STABLE, -- U OBJECT_IS_OF_WRONG_TYPE, -- U OBJECT_IS_STABLE, -- U OBJECT_OWNER_CONSTRAINT_WOULD_BE_VIOLATED, -- S OBJECT_OWNER_IS_DENIED, -- S OBJECT_REFERENCE_IS_INTERNAL, -- U OBJECT_RESOURCE_IS_IN_USE, -- U OBJECT_TYPES_MISMATCH, -- P OBJECT_TYPE_IS_ALREADY_IN_DESTINATION_SET, -- U OBJECT_TYPE_IS_INVALID, -- P OBJECT_TYPE_IS_NOT_IN_DESTINATION_SET, -- U OBJECT_TYPE_IS_UNKNOWN, -- I OPENING_MODE_IS_INVALID, -- P OPERATION_HAS_TIME_OUT, -- T OPERATION_IS_INTERRUPTED, -- R OPERATION_IS_NOT_ALLOWED_IN_TRANSACTION, -- U PARENT_BASIC_TYPES_ARE_MULTIPLE, -- P PATHNAME_DOES_NOT_DESIGNATE_AN_EXISTING_OBJECT, -- I PATHNAME_SYNTAX_IS_WRONG, -- I POSITIONING_IS_INVALID, -- I POSITION_HANDLE_IS_INVALID, -- I PREFERENCE_DOES_NOT_EXIST, -- I PRIVILEGE_IS_NOT_GRANTED, -- I PROCESS_HAS_NOT_GOT_REQUIRED_STATUS, -- S PROCESS_HAS_NO_CHILD, -- U PROCESS_IS_IN_TRANSACTION, -- U PROCESS_IS_NOT_ANCESTOR, -- U PROCESS_IS_NOT_CHILD, -- U PROCESS_IS_NOT_THE_CALLER, -- U PROCESS_IS_THE_CALLER, -- U PROCESS_IS_UNKNOWN, -- I PROFILING_IS_NOT_SWITCHED_ON, -- S REFERENCED_OBJECT_IS_NOT_MUTABLE, -- U REFERENCED_OBJECT_IS_UNSET, -- U REFERENCE_NAME_IS_INVALID, -- I RELATIONSHIP_TYPE_PROPERTIES_ARE_INCONSISTENT, -- P REPLICATED_COPY_UPDATE_IS_FORBIDDEN, -- U RESOURCE_GROUP_IS_KNOWN, -- U RESOURCE_GROUP_IS_UNKNOWN, -- I RESOURCE_IS_IN_USE, -- U RESOURCE_IS_NOT_ACQUIRED, -- U REVERSE_KEY_DOES_NOT_EXIST, -- U REVERSE_KEY_IS_BAD, -- U REVERSE_LINK_EXISTS, -- U SDS_INITIALISE_CONDITION_IS_NOT_SATISFIED, -- U SDS_IS_IN_A_WORKING_SCHEMA, -- U SDS_IS_KNOWN, -- U SDS_IS_UNDER_MODIFICATION, -- U SDS_IS_UNKNOWN, -- I SDS_NAME_IS_DUPLICATE, -- U SDS_NAME_IS_INVALID, -- P SDS_WOULD_APPEAR_TWICE_IN_WORKING_SCHEMA, -- U STATIC_CONTEXT_CONTENTS_CANNOT_BE_EXECUTED, -- U STATIC_CONTEXT_IS_ALREADY_MEMBER, -- U STATIC_CONTEXT_IS_BEING_WRITTEN, -- S STATIC_CONTEXT_IS_IN_USE, -- S STATIC_CONTEXT_IS_NOT_MEMBER, -- U STATIC_CONTEXT_REQUIRES_TOO_MUCH_MEMORY, -- S STATUS_IS_BAD, -- S TERMINATION_STATUS_VALUE_IS_RESERVED, -- S TOTAL_SPACE_IS_LESS_THAN_QUEUE_SPACE, -- S TRANSACTION_CANNOT_BE_COMMITTED, -- U TYPE_HAS_DEPENDENCIES, -- U TYPE_IDENTIFIER_IS_INVALID, -- I TYPE_IDENTIFIER_USAGE_IS_INVALID, -- U TYPE_IS_ALREADY_APPLIED, -- U TYPE_IS_NOT_DESCENDANT, -- U TYPE_IS_NOT_EXPECTED, -- U TYPE_IS_UNKNOWN, -- I TYPE_IS_UNKNOWN_IN_SDS, -- I TYPE_IS_UNKNOWN_IN_WORKING_SCHEMA, -- I TYPE_NAME_IN_SDS_IS_DUPLICATE, -- U TYPE_NAME_IS_INVALID, -- P TYPE_NAME_IS_UNKNOWN, -- I UNLOCKING_IN_TRANSACTION_IS_FORBIDDEN, -- U UPPER_BOUND_WOULD_BE_VIOLATED, -- U USAGE_MODE_ON_ATTRIBUTE_TYPE_WOULD_BE_VIOLATED, -- U USAGE_MODE_ON_LINK_TYPE_WOULD_BE_VIOLATED, -- U USAGE_MODE_ON_OBJECT_TYPE_WOULD_BE_VIOLATED, -- U USER_CLEARANCE_IS_INCOMPATIBLE, -- U USER_CRITERION_IS_NOT_SELECTED, -- U USER_GROUP_HAS_NOT_GOT_ALL_USERS_AS_SUBGROUP, -- U USER_GROUP_IS_IN_USE, -- U USER_IS_ALREADY_CLEARED_TO_CLASS, -- U USER_IS_ALREADY_MEMBER, -- U USER_IS_NOT_CLEARED, -- U USER_IS_NOT_CLEARED_TO_CLASS, -- U USER_IS_NOT_MEMBER, -- U USER_IS_UNKNOWN, -- I VALUE_TYPE_IS_INVALID, -- P VERSION_GRAPH_IS_INVALID, -- U VERSION_IS_REQUIRED, -- U VOLUME_EXISTS, -- U VOLUME_HAS_OTHER_LINKS, -- U VOLUME_HAS_OTHER_OBJECTS, -- U VOLUME_IDENTIFIER_IS_INVALID, -- I VOLUME_IS_ADMINISTRATION_VOLUME, -- U VOLUME_IS_BUSY, -- D VOLUME_IS_FULL, -- D VOLUME_IS_INACCESSIBLE, -- D VOLUME_IS_MASTER_ADMINISTRATION_VOLUME, -- D VOLUME_IS_NOT_ADMINISTRATION_VOLUME, -- D VOLUME_IS_NOT_UNMOUNTABLE, -- D VOLUME_IS_READ_ONLY, -- D VOLUME_IS_UNKNOWN, -- I WORKSTATION_EXISTS, -- U WORKSTATION_IDENTIFIER_IS_INVALID, -- I WORKSTATION_IS_BUSY, -- U WORKSTATION_IS_UNKNOWN, -- I -- Ada binding specific errors: UNDEFINED_REFERENCE, -- I UNDEFINED_MESSAGE_HANDLE, -- I CONTENTS_HANDLE_IS_OPEN, -- S INTERNAL_IMPLEMENTATION_ERROR, -- U -- added for 1.5 binding UNIMPLEMENTED_FEATURE_ERROR); -- U -- added for 1.5 binding -- UNDEFINED_REFERENCE indicates that an attempt has been made -- to use an object reference which has not been set. -- UNDEFINED_MESSAGE_HANDLE indicates that an attempt has been made -- to use an message handle which has not been set; see 14.2. -- CONTENTS_HANDLE_IS_OPEN indicates that the contents handle -- which has been provided as a parameter to the operation is already open; see 12.2. ----------------------------- OPERATIONS ON STATUS ----------------------------- procedure set ( status : in out Pcte_error.handle; to_record : in STANDARD.BOOLEAN := TRUE; to_raise : in STANDARD.BOOLEAN := TRUE); -- Pcte_error_set sets the record and raise properties of the error -- handle status to the values of to_record and to_raise respectively. procedure unset ( status : in out Pcte_error.handle); -- Pcte_error.unset unsets the record and raise -- properties of the error handle status. procedure set_will_raise ( status : in out Pcte_error.handle; to_raise : in STANDARD.BOOLEAN); -- Pcte_error.set_will_raise sets the raise property of -- the error handle status to the value of to_raise. procedure set_will_record ( status : in out Pcte_error.handle; to_record : in STANDARD.BOOLEAN); -- Pcte_error.set_will_record sets the record property -- of the error handle status to the value of to_record. function will_raise ( status : Pcte_error.handle) return STANDARD.BOOLEAN; -- Pcte_error.will_raise returns the setting of the -- raise property of the error handle status. function will_record ( status : Pcte_error.handle) return STANDARD.BOOLEAN; -- Pcte_error.will_record returns the setting of the -- record property of the error handle status. function last_error ( status : Pcte_error.handle) return Pcte_error.error_code; -- Pcte_error.last_error returns the latest error code -- recorded in the error handle status. private -- implementation-defined type handle_rec is record will_raise : STANDARD.BOOLEAN; will_record : STANDARD.BOOLEAN; last_error : error_code; errno : STANDARD.INTEGER; end record; type handle is access handle_rec; EXCEPTION_ONLY : constant Pcte_error.handle := new handle_rec'(TRUE, FALSE, NO_ERROR, 0); end Pcte_error;