-- 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.Runtime.Remoting.Messaging.IMessageCtrl.Ref is access;
with type MSSyst.Runtime.Remoting.Messaging.IMessage.Ref is access;
with type MSSyst.Runtime.Remoting.Messaging.IMessageSink.Ref is access;
with type MSSyst.Runtime.Remoting.Channels.IServerChannelSink.Ref is access;
with type MSSyst.Runtime.Remoting.Channels.IServerChannelSinkProvider.Ref is access;
with type MSSyst.Runtime.Remoting.Channels.IChannelReceiver.Ref is access;
with MSSyst.Runtime.Remoting.Channels.ServerProcessing;
with type MSSyst.Runtime.Remoting.Channels.IServerChannelSinkStack.Ref is access;
with type MSSyst.Runtime.Remoting.Messaging.IMessage.Ref_addrof is access;
with type MSSyst.Object.Ref is access;
with type MSSyst.Runtime.Remoting.Channels.IChannel.Ref_array is access;
with type MSSyst.Runtime.Remoting.Channels.IChannel.Ref is access;
with type MSSyst.String.Ref is access;
with type MSSyst.Collections.IDictionary.Ref is access;
with type MSSyst.Type_k.Ref is access;
with type MSSyst.String.Ref_array is access;
with type MSSyst.MarshalByRefObject.Ref is access;
with MSSyst.Object;
package MSSyst.Runtime.Remoting.Channels.ChannelServices 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.Object.Typ with record
      null;
   end record;
   function AsyncDispatchMessage(
      msg : MSSyst.Runtime.Remoting.Messaging.IMessage.Ref;
      replySink : MSSyst.Runtime.Remoting.Messaging.IMessageSink.Ref) return MSSyst.Runtime.Remoting.Messaging.IMessageCtrl.Ref;
   function CreateServerChannelSinkChain(
      provider : MSSyst.Runtime.Remoting.Channels.IServerChannelSinkProvider.Ref;
      channel : MSSyst.Runtime.Remoting.Channels.IChannelReceiver.Ref) return MSSyst.Runtime.Remoting.Channels.IServerChannelSink.Ref;
   function DispatchMessage(
      sinkStack : MSSyst.Runtime.Remoting.Channels.IServerChannelSinkStack.Ref;
      msg : MSSyst.Runtime.Remoting.Messaging.IMessage.Ref;
      replyMsg : MSSyst.Runtime.Remoting.Messaging.IMessage.Ref_addrof) return MSSyst.Runtime.Remoting.Channels.ServerProcessing.Valuetype;
   function get_RegisteredChannels return MSSyst.Runtime.Remoting.Channels.IChannel.Ref_array;
   function GetChannel(
      name : MSSyst.String.Ref) return MSSyst.Runtime.Remoting.Channels.IChannel.Ref;
   function GetChannelSinkProperties(
      obj : MSSyst.Object.Ref) return MSSyst.Collections.IDictionary.Ref;
   function GetUrlsForObject(
      obj : MSSyst.MarshalByRefObject.Ref) return MSSyst.String.Ref_array;
   procedure RegisterChannel(
      chnl : MSSyst.Runtime.Remoting.Channels.IChannel.Ref);
   function SyncDispatchMessage(
      msg : MSSyst.Runtime.Remoting.Messaging.IMessage.Ref) return MSSyst.Runtime.Remoting.Messaging.IMessage.Ref;
   procedure UnregisterChannel(
      chnl : MSSyst.Runtime.Remoting.Channels.IChannel.Ref);
private
   pragma Convention(MSIL,Typ);
   pragma Import(MSIL,AsyncDispatchMessage,"AsyncDispatchMessage");
   pragma Import(MSIL,CreateServerChannelSinkChain,"CreateServerChannelSinkChain");
   pragma Import(MSIL,DispatchMessage,"DispatchMessage");
   pragma Import(MSIL,get_RegisteredChannels,"get_RegisteredChannels");
   pragma Import(MSIL,GetChannel,"GetChannel");
   pragma Import(MSIL,GetChannelSinkProperties,"GetChannelSinkProperties");
   pragma Import(MSIL,GetUrlsForObject,"GetUrlsForObject");
   pragma Import(MSIL,RegisterChannel,"RegisterChannel");
   pragma Import(MSIL,SyncDispatchMessage,"SyncDispatchMessage");
   pragma Import(MSIL,UnregisterChannel,"UnregisterChannel");
end MSSyst.Runtime.Remoting.Channels.ChannelServices;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Runtime.Remoting.Channels.ChannelServices,
   ".ver 1:0:5000:0 .publickeytoken=( b7 7a 5c 56 19 34 e0 89 )",
   "[mscorlib]System.Runtime.Remoting.Channels.ChannelServices");
