-- 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.Object.Ref is access;
with type MSSyst.Type_k.Ref is access;
with type MSSyst.Security.IPermission.Ref is access;
with type MSSyst.Security.Policy.PolicyLevel.Ref is access;
with type MSSyst.String.Ref is access;
with MSSyst.Security.PolicyLevelType;
with type MSSyst.Collections.IEnumerator.Ref is access;
with type MSSyst.Security.PermissionSet.Ref is access;
with type MSSyst.Security.Policy.Evidence.Ref is access;
with type MSSyst.Security.PermissionSet.Ref_addrof is access;
with MSSyst.Object;
package MSSyst.Security.SecurityManager 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 get_CheckExecutionRights return Standard.Boolean;
   function get_SecurityEnabled return Standard.Boolean;
   function IsGranted(
      perm : MSSyst.Security.IPermission.Ref) return Standard.Boolean;
   function LoadPolicyLevelFromFile(
      path : MSSyst.String.Ref;
      type_k : MSSyst.Security.PolicyLevelType.Valuetype) return MSSyst.Security.Policy.PolicyLevel.Ref;
   function LoadPolicyLevelFromString(
      str : MSSyst.String.Ref;
      type_k : MSSyst.Security.PolicyLevelType.Valuetype) return MSSyst.Security.Policy.PolicyLevel.Ref;
   function PolicyHierarchy return MSSyst.Collections.IEnumerator.Ref;
   function ResolvePolicy(
      evidence : MSSyst.Security.Policy.Evidence.Ref;
      reqdPset : MSSyst.Security.PermissionSet.Ref;
      optPset : MSSyst.Security.PermissionSet.Ref;
      denyPset : MSSyst.Security.PermissionSet.Ref;
      denied : MSSyst.Security.PermissionSet.Ref_addrof) return MSSyst.Security.PermissionSet.Ref;
   function ResolvePolicy(
      evidence : MSSyst.Security.Policy.Evidence.Ref) return MSSyst.Security.PermissionSet.Ref;
   function ResolvePolicyGroups(
      evidence : MSSyst.Security.Policy.Evidence.Ref) return MSSyst.Collections.IEnumerator.Ref;
   procedure SavePolicy;
   procedure SavePolicyLevel(
      level : MSSyst.Security.Policy.PolicyLevel.Ref);
   procedure set_CheckExecutionRights(
      value : Standard.Boolean);
   procedure set_SecurityEnabled(
      value : Standard.Boolean);
private
   pragma Convention(MSIL,Typ);
   pragma Import(MSIL,get_CheckExecutionRights,"get_CheckExecutionRights");
   pragma Import(MSIL,get_SecurityEnabled,"get_SecurityEnabled");
   pragma Import(MSIL,IsGranted,"IsGranted");
   pragma Import(MSIL,LoadPolicyLevelFromFile,"LoadPolicyLevelFromFile");
   pragma Import(MSIL,LoadPolicyLevelFromString,"LoadPolicyLevelFromString");
   pragma Import(MSIL,PolicyHierarchy,"PolicyHierarchy");
   pragma Import(MSIL,ResolvePolicy,"ResolvePolicy");
   pragma Import(MSIL,ResolvePolicyGroups,"ResolvePolicyGroups");
   pragma Import(MSIL,SavePolicy,"SavePolicy");
   pragma Import(MSIL,SavePolicyLevel,"SavePolicyLevel");
   pragma Import(MSIL,set_CheckExecutionRights,"set_CheckExecutionRights");
   pragma Import(MSIL,set_SecurityEnabled,"set_SecurityEnabled");
end MSSyst.Security.SecurityManager;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Security.SecurityManager,
   ".ver 1:0:5000:0 .publickeytoken=( b7 7a 5c 56 19 34 e0 89 )",
   "[mscorlib]System.Security.SecurityManager");
