X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.Security.Policy%2FPermissionRequestEvidence.cs;h=992811a83a618fb2710b4a5dd3d03fb5405be25f;hb=7c970f8ee1f635da8575bcf58d89c16bb5c2ace1;hp=a7a86d964c4f65b8c5a7c5bd39672cb4bf4259a4;hpb=7ff8f29ff29fa3f08ef305ac43ef079097323286;p=mono.git diff --git a/mcs/class/corlib/System.Security.Policy/PermissionRequestEvidence.cs b/mcs/class/corlib/System.Security.Policy/PermissionRequestEvidence.cs old mode 100755 new mode 100644 index a7a86d964c4..992811a83a6 --- a/mcs/class/corlib/System.Security.Policy/PermissionRequestEvidence.cs +++ b/mcs/class/corlib/System.Security.Policy/PermissionRequestEvidence.cs @@ -3,12 +3,10 @@ // // Authors: // Nick Drochak (ndrochak@gol.com) +// Sebastien Pouliot // // (C) 2003 Nick Drochak -// - -// -// Copyright (C) 2004 Novell, Inc (http://www.novell.com) +// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the @@ -29,33 +27,39 @@ // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // + +using System.Runtime.InteropServices; -using System.Security; -using System.Text; +namespace System.Security.Policy { -namespace System.Security.Policy -{ [Serializable] - public sealed class PermissionRequestEvidence : IBuiltInEvidence { - PermissionSet requested, optional, denied; +#if NET_2_0 + [ComVisible (true)] +#endif + public sealed class PermissionRequestEvidence : IBuiltInEvidence { + + private PermissionSet requested, optional, denied; - public PermissionRequestEvidence(PermissionSet requested, - PermissionSet optional, PermissionSet denied) { - this.requested = requested; - this.optional = optional; - this.denied = denied; + public PermissionRequestEvidence (PermissionSet requested, PermissionSet optional, PermissionSet denied) + { + if (requested != null) + this.requested = new PermissionSet (requested); + if (optional != null) + this.optional = new PermissionSet (optional); + if (denied != null) + this.denied = new PermissionSet (denied); } public PermissionSet DeniedPermissions { - get {return denied;} + get { return denied; } } public PermissionSet OptionalPermissions { - get {return optional;} + get { return optional; } } public PermissionSet RequestedPermissions { - get {return requested;} + get { return requested; } } public PermissionRequestEvidence Copy () @@ -88,23 +92,34 @@ namespace System.Security.Policy // interface IBuiltInEvidence - [MonoTODO] int IBuiltInEvidence.GetRequiredSize (bool verbose) - { - return 0; + { + int size = verbose ? 3 : 1; + if (requested != null) { + int r = requested.ToXml ().ToString ().Length + (verbose ? 5 : 0); + size += r; + } + if (optional != null) { + int o = optional.ToXml ().ToString ().Length + (verbose ? 5 : 0); + size += o; + } + if (denied != null) { + int d = denied.ToXml ().ToString ().Length + (verbose ? 5 : 0); + size += d; + } + return size; } - [MonoTODO] + [MonoTODO ("IBuiltInEvidence")] int IBuiltInEvidence.InitFromBuffer (char [] buffer, int position) { return 0; } - [MonoTODO] + [MonoTODO ("IBuiltInEvidence")] int IBuiltInEvidence.OutputToBuffer (char [] buffer, int position, bool verbose) { return 0; } - } }