File : posix-xti-mosi.ads
------------------------------------------------------------------------------
-- --
-- POSIX Ada95 Bindings for Protocol Independent Interfaces (P1003.5c) --
-- --
-- P O S I X . X T I . m O S I --
-- --
-- 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.mOSI is
type mOSI_XTI_Address is new XTI_Address with private;
mOSI_Address_Length_Maximum : constant Natural := 0;
type AP_Invocation_Id is new POSIX.Octet_Array;
type AE_Invocation_Id is new POSIX.Octet_Array;
type AP_Title is new POSIX.Octet_Array;
type AE_Qualifier is new POSIX.Octet_Array;
type Presentation_Address is new POSIX.Octet_Array;
type mOSI_Address_Flags is new POSIX.Option_Set;
AP_Invocation_Id_Valid : constant mOSI_Address_Flags := Empty_Set;
AE_Invocation_Id_Valid : constant mOSI_Address_Flags := Empty_Set;
function Get_Flags
(Address : mOSI_XTI_Address)
return mOSI_Address_Flags;
procedure Set_Flags
(Address : in out mOSI_XTI_Address;
To : in mOSI_Address_Flags);
function Get_AP_Invocation_Id
(Address : mOSI_XTI_Address)
return AP_Invocation_Id;
procedure Set_AP_Invocation_Id
(Address : in out mOSI_XTI_Address;
To : in AP_Invocation_Id);
function Get_AE_Invocation_Id
(Address : mOSI_XTI_Address)
return AE_Invocation_Id;
procedure Set_AE_Invocation_Id
(Address : in out mOSI_XTI_Address;
To : in AE_Invocation_Id);
function Get_AP_Title
(Address : mOSI_XTI_Address)
return AP_Title;
function Get_AE_Qualifier
(Address : mOSI_XTI_Address)
return AE_Qualifier;
function Get_Presentation_Address
(Address : mOSI_XTI_Address)
return Presentation_Address;
procedure Set_OSI_Address
(Address : in out mOSI_XTI_Address;
AP : in AP_Title;
AE : in AE_Qualifier;
PA : in Presentation_Address);
-- Dispatching operations for mOSI_XTI_Address
procedure Get_Address
(Info_Item : in Connection_Information;
Address : in out mOSI_XTI_Address);
mOSI_Connection_Mode : constant Option_Level := 0;
mOSI_Connectionless_Mode : constant Option_Level := 0;
Application_Context : constant Option_Name := 0;
Presentation_Context : constant Option_Name := 0;
type Object_Identifier is new POSIX.Octet_Array;
type Application_Context_Name is new Object_Identifier;
type Presentation_Context_List is private;
function Get_Value (Option_Item : Protocol_Option)
return Application_Context_Name;
procedure Set_Option
(Option_Item : in out Protocol_Option;
Level : in Option_Level;
Name : in Option_Name;
Value : in Application_Context_Name);
function Get_Value (Option_Item : Protocol_Option)
return Presentation_Context_List;
procedure Set_Option
(Option_Item : in out Protocol_Option;
Level : in Option_Level;
Name : in Option_Name;
Value : in Presentation_Context_List);
-- Presentation Context Definition and Result List
type Presentation_Context_Item is private;
type Presentation_Item_Id is new Integer;
procedure Set_Presentation_Id
(List : in out Presentation_Context_Item;
Item : in Presentation_Item_Id);
function Get_Presentation_Id
(Item : Presentation_Context_Item)
return Presentation_Item_Id;
type Negotiation_Result is
(Presentation_Context_Accepted, Presentation_Context_Rejected,
Rejected_No_Reason_Specified, Abstract_Syntax_Not_Supported,
Transfer_Syntax_Not_Supported, Local_DCS_Limit_Exceeded);
procedure Set_Negotiation_Result
(List : in out Presentation_Context_Item;
Item : in Negotiation_Result);
function Get_Negotiation_Result
(Item : Presentation_Context_Item)
return Negotiation_Result;
type Syntax_Object_List is private;
procedure Set_Syntax_Object
(List : in out Presentation_Context_Item;
Item : in Syntax_Object_List);
function Get_Syntax_Object
(Item : Presentation_Context_Item)
return Syntax_Object_List;
Empty_Presentation_Context_List : constant Presentation_Context_List;
procedure Make_Empty (List : in out Presentation_Context_List);
procedure Add_Item_To_List
(List : in out Presentation_Context_List;
Item : in Presentation_Context_Item);
generic
with procedure Action
(Id : in Presentation_Context_Item;
Quit : in out Boolean);
procedure For_Every_Presentation_Context_Item
(List : in Presentation_Context_List);
Empty_Syntax_Object_List : constant Syntax_Object_List;
procedure Make_Empty (List : in out Syntax_Object_List);
procedure Add_Item_To_List
(List : in out Syntax_Object_List;
Item : in Object_Identifier);
generic
with procedure Action
(Object : in Object_Identifier;
Quit : in out Boolean);
procedure For_Every_Object_Identifier
(List : in Syntax_Object_List);
Rejected_By_Peer : constant Reason_Code := 0;
AC_Name_Not_Supported : constant Reason_Code := 0;
Unrecognized_AP_Title : constant Reason_Code := 0;
Unrecognized_AE_Qualifier : constant Reason_Code := 0;
Authentication_Required : constant Reason_Code := 0;
Aborted_By_Peer : constant Reason_Code := 0;
No_Common_Version : constant Reason_Code := 0;
private
type mOSI_XTI_Address is new XTI_Address with null record;
type Presentation_Context_List is new Integer;
type Presentation_Context_Item is new Integer;
type Syntax_Object_List is new Integer;
Empty_Presentation_Context_List : constant Presentation_Context_List := 0;
Empty_Syntax_Object_List : constant Syntax_Object_List := 0;
end POSIX.XTI.mOSI;