-- Autogenerated by MSIL2Ada v. 2
-- By: Martin C. Carlisle
--     Department of Computer Science
--     US Air Force Academy
--     carlislem@acm.org
pragma Extensions_Allowed(On);
with MSSyst.Object;
with MSIL_Types;
use MSIL_Types;
with type MSSyst.String.Ref is access;
with MSSyst.UriHostNameType;
with type MSSyst.Runtime.Remoting.ObjRef.Ref is access;
with type MSSyst.Type_k.Ref is access;
with type MSSyst.Object.Ref is access;
with type MSSyst.String.Ref_array is access;
with MSSyst.UriPartial;
with MSSyst.MarshalByRefObject;
package MSSyst.Uri is
   type Typ;
   type Ref is access all Typ'Class;
   type Ref_addrof is access all Ref;
   type Ref_Arr is array(Natural range <>) of Ref;
   type Ref_Array is access all Ref_Arr;
   type Ref_Array_addrof is access all Ref_Array;
   type Typ is new MSSyst.MarshalByRefObject.Typ with record
      null;
   end record;
   UriSchemeFile : MSSyst.String.Ref;
   pragma Import(MSIL,UriSchemeFile,"UriSchemeFile");
   UriSchemeFtp : MSSyst.String.Ref;
   pragma Import(MSIL,UriSchemeFtp,"UriSchemeFtp");
   UriSchemeGopher : MSSyst.String.Ref;
   pragma Import(MSIL,UriSchemeGopher,"UriSchemeGopher");
   UriSchemeHttp : MSSyst.String.Ref;
   pragma Import(MSIL,UriSchemeHttp,"UriSchemeHttp");
   UriSchemeHttps : MSSyst.String.Ref;
   pragma Import(MSIL,UriSchemeHttps,"UriSchemeHttps");
   UriSchemeMailto : MSSyst.String.Ref;
   pragma Import(MSIL,UriSchemeMailto,"UriSchemeMailto");
   UriSchemeNews : MSSyst.String.Ref;
   pragma Import(MSIL,UriSchemeNews,"UriSchemeNews");
   UriSchemeNntp : MSSyst.String.Ref;
   pragma Import(MSIL,UriSchemeNntp,"UriSchemeNntp");
   SchemeDelimiter : MSSyst.String.Ref;
   pragma Import(MSIL,SchemeDelimiter,"SchemeDelimiter");
   function new_Uri(
      This : Ref := null;
      uriString : MSSyst.String.Ref) return Ref;
   function new_Uri(
      This : Ref := null;
      uriString : MSSyst.String.Ref;
      dontEscape : Standard.Boolean) return Ref;
   function new_Uri(
      This : Ref := null;
      baseUri : MSSyst.Uri.Ref;
      relativeUri : MSSyst.String.Ref) return Ref;
   function new_Uri(
      This : Ref := null;
      baseUri : MSSyst.Uri.Ref;
      relativeUri : MSSyst.String.Ref;
      dontEscape : Standard.Boolean) return Ref;
   function CheckHostName(
      name : MSSyst.String.Ref) return MSSyst.UriHostNameType.Valuetype;
   function CheckSchemeName(
      schemeName : MSSyst.String.Ref) return Standard.Boolean;
   function Equals(
      This : access Typ;
      comparand : MSSyst.Object.Ref) return Standard.Boolean;
   function FromHex(
      digit : Wide_Character) return Integer;
   function get_AbsolutePath(
      This : access Typ) return MSSyst.String.Ref;
   function get_AbsoluteUri(
      This : access Typ) return MSSyst.String.Ref;
   function get_Authority(
      This : access Typ) return MSSyst.String.Ref;
   function get_Fragment(
      This : access Typ) return MSSyst.String.Ref;
   function get_Host(
      This : access Typ) return MSSyst.String.Ref;
   function get_HostNameType(
      This : access Typ) return MSSyst.UriHostNameType.Valuetype;
   function get_IsDefaultPort(
      This : access Typ) return Standard.Boolean;
   function get_IsFile(
      This : access Typ) return Standard.Boolean;
   function get_IsLoopback(
      This : access Typ) return Standard.Boolean;
   function get_IsUnc(
      This : access Typ) return Standard.Boolean;
   function get_LocalPath(
      This : access Typ) return MSSyst.String.Ref;
   function get_PathAndQuery(
      This : access Typ) return MSSyst.String.Ref;
   function get_Port(
      This : access Typ) return Integer;
   function get_Query(
      This : access Typ) return MSSyst.String.Ref;
   function get_Scheme(
      This : access Typ) return MSSyst.String.Ref;
   function get_Segments(
      This : access Typ) return MSSyst.String.Ref_array;
   function get_UserEscaped(
      This : access Typ) return Standard.Boolean;
   function get_UserInfo(
      This : access Typ) return MSSyst.String.Ref;
   function GetHashCode(
      This : access Typ) return Integer;
   function GetLeftPart(
      This : access Typ;
      part : MSSyst.UriPartial.Valuetype) return MSSyst.String.Ref;
   function HexEscape(
      character : Wide_Character) return MSSyst.String.Ref;
   function HexUnescape(
      pattern : MSSyst.String.Ref;
      index : MSIL_Types.Int32_addrof) return Wide_Character;
   function IsHexDigit(
      character : Wide_Character) return Standard.Boolean;
   function IsHexEncoding(
      pattern : MSSyst.String.Ref;
      index : Integer) return Standard.Boolean;
   function MakeRelative(
      This : access Typ;
      toUri : MSSyst.Uri.Ref) return MSSyst.String.Ref;
   function ToString(
      This : access Typ) return MSSyst.String.Ref;
private
   pragma Convention(MSIL,Typ);
   pragma MSIL_Constructor(new_Uri);
   pragma Import(MSIL,CheckHostName,"CheckHostName");
   pragma Import(MSIL,CheckSchemeName,"CheckSchemeName");
   pragma Import(MSIL,Equals,"Equals");
   pragma Import(MSIL,FromHex,"FromHex");
   pragma Import(MSIL,get_AbsolutePath,"get_AbsolutePath");
   pragma Import(MSIL,get_AbsoluteUri,"get_AbsoluteUri");
   pragma Import(MSIL,get_Authority,"get_Authority");
   pragma Import(MSIL,get_Fragment,"get_Fragment");
   pragma Import(MSIL,get_Host,"get_Host");
   pragma Import(MSIL,get_HostNameType,"get_HostNameType");
   pragma Import(MSIL,get_IsDefaultPort,"get_IsDefaultPort");
   pragma Import(MSIL,get_IsFile,"get_IsFile");
   pragma Import(MSIL,get_IsLoopback,"get_IsLoopback");
   pragma Import(MSIL,get_IsUnc,"get_IsUnc");
   pragma Import(MSIL,get_LocalPath,"get_LocalPath");
   pragma Import(MSIL,get_PathAndQuery,"get_PathAndQuery");
   pragma Import(MSIL,get_Port,"get_Port");
   pragma Import(MSIL,get_Query,"get_Query");
   pragma Import(MSIL,get_Scheme,"get_Scheme");
   pragma Import(MSIL,get_Segments,"get_Segments");
   pragma Import(MSIL,get_UserEscaped,"get_UserEscaped");
   pragma Import(MSIL,get_UserInfo,"get_UserInfo");
   pragma Import(MSIL,GetHashCode,"GetHashCode");
   pragma Import(MSIL,GetLeftPart,"GetLeftPart");
   pragma Import(MSIL,HexEscape,"HexEscape");
   pragma Import(MSIL,HexUnescape,"HexUnescape");
   pragma Import(MSIL,IsHexDigit,"IsHexDigit");
   pragma Import(MSIL,IsHexEncoding,"IsHexEncoding");
   pragma Import(MSIL,MakeRelative,"MakeRelative");
   pragma Import(MSIL,ToString,"ToString");
end MSSyst.Uri;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Uri,
   ".ver 1:0:5000:0 .publickeytoken=( 96 9d b8 05 3d 33 22 ac )",
   "[System]System.Uri");
