--------------------------------------------------------------------------------
-- <auto-generated>                                                           --
--     This code was generated by a tool.                                     --
--                                                                            --
--     Changes to this file may cause incorrect behavior and will be lost if  --
--     the code is regenerated.                                               --
-- </auto-generated>                                                          --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--                                                                            --
--    Copyright(c) 2019 Alexander Gamper, All Rights Reserved.                --
--                                                                            --
--    Ada-NetFramework                                                        --
--    Version   : 1.0.0.0                                                     --
--                                                                            --
-- This program is free software: you can redistribute it and / or modify     --
-- it under the terms of the GNU Lesser General Public License as published by--
-- the Free Software Foundation, either version 3 of the License, or          --
-- (at your option) any later version.                                        --
--                                                                            --
-- This program is distributed in the hope that it will be useful,            --
-- but WITHOUT ANY WARRANTY; without even the implied warranty of             --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the               --
-- GNU Lesser General Public License for more details.                        --
--                                                                            --
-- You should have received a copy of the GNU Lesser General Public License   --
-- along with this program.If not, see http://www.gnu.org/licenses            --
--                                                                            --
--------------------------------------------------------------------------------
with NetFrameworkBase.System.Object;
limited with NetFrameworkBase.System.Text.EncodingProvider;
limited with NetFrameworkBase.System.Text.EncoderFallback;
limited with NetFrameworkBase.System.Text.DecoderFallback;
limited with NetFrameworkBase.System.Text.NormalizationForm;
limited with NetFrameworkBase.System.Text.EncodingInfo;
limited with NetFrameworkBase.System.Text.Decoder;
limited with NetFrameworkBase.System.Text.Encoder;
--------------------------------------------------------------------------------
package NetFrameworkBase.System.Text.Encoding is
   
   type Kind is new NetFrameworkBase.System.Object.Kind with null record;
   type Kind_Ptr is access all Kind;
   type Kind_Array is array(Natural range<>) of Kind_Ptr;
   type Kind_Array_Ptr is access all Kind_Array;
   
      function Convert
      (
         srcEncoding : NetFrameworkBase.System.Text.Encoding.Kind_Ptr; 
         dstEncoding : NetFrameworkBase.System.Text.Encoding.Kind_Ptr; 
         bytes : NetFrameworkBase.Byte_Array
      )
      return NetFrameworkBase.Byte_Array;
      
      procedure RegisterProvider
      (
         provider : NetFrameworkBase.System.Text.EncodingProvider.Kind_Ptr
      )
      ;
      
      function GetEncoding
      (
         codepage : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function GetEncoding
      (
         codepage : NetFrameworkBase.Int32; 
         encoderFallback : NetFrameworkBase.System.Text.EncoderFallback.Kind_Ptr; 
         decoderFallback : NetFrameworkBase.System.Text.DecoderFallback.Kind_Ptr
      )
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function GetEncoding
      (
         name : NetFrameworkBase.BSTR
      )
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function GetEncoding
      (
         name : NetFrameworkBase.BSTR; 
         encoderFallback : NetFrameworkBase.System.Text.EncoderFallback.Kind_Ptr; 
         decoderFallback : NetFrameworkBase.System.Text.DecoderFallback.Kind_Ptr
      )
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function GetEncodings
      return NetFrameworkBase.System.Text.EncodingInfo.Kind_Array;
      
      function GetPreamble
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Byte_Array;
      
      function BodyName
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function HeaderName
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function WebName
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function WindowsCodePage
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Int32;
      
      function IsBrowserDisplay
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Boolean;
      
      function IsBrowserSave
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Boolean;
      
      function IsMailNewsDisplay
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Boolean;
      
      function IsMailNewsSave
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Boolean;
      
      function IsSingleByte
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Boolean;
      
      function EncoderFallback
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.System.Text.EncoderFallback.Kind_Ptr;
      
      procedure EncoderFallback
      (
         this : in out Encoding.Kind;
         value : NetFrameworkBase.System.Text.EncoderFallback.Kind_Ptr
      );
      
      function DecoderFallback
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.System.Text.DecoderFallback.Kind_Ptr;
      
      procedure DecoderFallback
      (
         this : in out Encoding.Kind;
         value : NetFrameworkBase.System.Text.DecoderFallback.Kind_Ptr
      );
      
      function Clone
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.System.Object.Kind_Ptr;
      
      function IsReadOnly
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Boolean;
      
      function ASCII
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function GetByteCount
      (
         this : in out Encoding.Kind;
         chars : NetFrameworkBase.Wide_Char_Array
      )
      return NetFrameworkBase.Int32;
      
      function GetByteCount
      (
         this : in out Encoding.Kind;
         s : NetFrameworkBase.BSTR
      )
      return NetFrameworkBase.Int32;
      
      function GetByteCount
      (
         this : in out Encoding.Kind;
         chars : NetFrameworkBase.Wide_Char_Ptr; 
         count : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
      function GetBytes
      (
         this : in out Encoding.Kind;
         chars : NetFrameworkBase.Wide_Char_Array
      )
      return NetFrameworkBase.Byte_Array;
      
      function GetBytes
      (
         this : in out Encoding.Kind;
         chars : NetFrameworkBase.Wide_Char_Array; 
         index : NetFrameworkBase.Int32; 
         count : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Byte_Array;
      
      function GetBytes
      (
         this : in out Encoding.Kind;
         s : NetFrameworkBase.BSTR
      )
      return NetFrameworkBase.Byte_Array;
      
      function GetBytes
      (
         this : in out Encoding.Kind;
         s : NetFrameworkBase.BSTR; 
         charIndex : NetFrameworkBase.Int32; 
         charCount : NetFrameworkBase.Int32; 
         bytes : NetFrameworkBase.Byte_Array; 
         byteIndex : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
      function GetCharCount
      (
         this : in out Encoding.Kind;
         bytes : NetFrameworkBase.Byte_Array
      )
      return NetFrameworkBase.Int32;
      
      function GetCharCount
      (
         this : in out Encoding.Kind;
         bytes : NetFrameworkBase.Byte_Ptr; 
         count : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
      function GetChars
      (
         this : in out Encoding.Kind;
         bytes : NetFrameworkBase.Byte_Array
      )
      return NetFrameworkBase.Wide_Char_Array;
      
      function GetChars
      (
         this : in out Encoding.Kind;
         bytes : NetFrameworkBase.Byte_Array; 
         index : NetFrameworkBase.Int32; 
         count : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Wide_Char_Array;
      
      function GetString
      (
         this : in out Encoding.Kind;
         bytes : NetFrameworkBase.Byte_Ptr; 
         byteCount : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.BSTR;
      
      function CodePage
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Int32;
      
      function IsAlwaysNormalized
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Boolean;
      
      function IsAlwaysNormalized
      (
         this : in out Encoding.Kind;
         form : NetFrameworkBase.System.Text.NormalizationForm.Kind
      )
      return NetFrameworkBase.Boolean;
      
      function GetDecoder
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.System.Text.Decoder.Kind_Ptr;
      
      function Default
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function GetEncoder
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.System.Text.Encoder.Kind_Ptr;
      
      function GetString
      (
         this : in out Encoding.Kind;
         bytes : NetFrameworkBase.Byte_Array
      )
      return NetFrameworkBase.BSTR;
      
      function GetString
      (
         this : in out Encoding.Kind;
         bytes : NetFrameworkBase.Byte_Array; 
         index : NetFrameworkBase.Int32; 
         count : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.BSTR;
      
      function Unicode
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function BigEndianUnicode
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function UTF7
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function UTF8
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function UTF32
      return NetFrameworkBase.System.Text.Encoding.Kind_Ptr;
      
      function Equals
      (
         this : in out Encoding.Kind;
         value : NetFrameworkBase.System.Object.Kind_Ptr
      )
      return NetFrameworkBase.Boolean;
      
      function GetHashCode
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.Int32;
      
      function Convert
      (
         srcEncoding : NetFrameworkBase.System.Text.Encoding.Kind_Ptr; 
         dstEncoding : NetFrameworkBase.System.Text.Encoding.Kind_Ptr; 
         bytes : NetFrameworkBase.Byte_Array; 
         index : NetFrameworkBase.Int32; 
         count : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Byte_Array;
      
      function EncodingName
      (
         this : in out Encoding.Kind
      )
      return NetFrameworkBase.BSTR;
      
      function GetByteCount
      (
         this : in out Encoding.Kind;
         chars : NetFrameworkBase.Wide_Char_Array; 
         index : NetFrameworkBase.Int32; 
         count : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
      function GetBytes
      (
         this : in out Encoding.Kind;
         chars : NetFrameworkBase.Wide_Char_Array; 
         charIndex : NetFrameworkBase.Int32; 
         charCount : NetFrameworkBase.Int32; 
         bytes : NetFrameworkBase.Byte_Array; 
         byteIndex : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
      function GetBytes
      (
         this : in out Encoding.Kind;
         chars : NetFrameworkBase.Wide_Char_Ptr; 
         charCount : NetFrameworkBase.Int32; 
         bytes : NetFrameworkBase.Byte_Ptr; 
         byteCount : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
      function GetCharCount
      (
         this : in out Encoding.Kind;
         bytes : NetFrameworkBase.Byte_Array; 
         index : NetFrameworkBase.Int32; 
         count : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
      function GetChars
      (
         this : in out Encoding.Kind;
         bytes : NetFrameworkBase.Byte_Array; 
         byteIndex : NetFrameworkBase.Int32; 
         byteCount : NetFrameworkBase.Int32; 
         chars : NetFrameworkBase.Wide_Char_Array; 
         charIndex : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
      function GetChars
      (
         this : in out Encoding.Kind;
         bytes : NetFrameworkBase.Byte_Ptr; 
         byteCount : NetFrameworkBase.Int32; 
         chars : NetFrameworkBase.Wide_Char_Ptr; 
         charCount : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
      function GetMaxByteCount
      (
         this : in out Encoding.Kind;
         charCount : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
      function GetMaxCharCount
      (
         this : in out Encoding.Kind;
         byteCount : NetFrameworkBase.Int32
      )
      return NetFrameworkBase.Int32;
      
end;
