Author: spouliot
Date: 2005-10-31 20:31:16 -0500 (Mon, 31 Oct 2005)
New Revision: 52433

Added:
   trunk/mcs/class/corlib/System.Runtime.Versioning/
   trunk/mcs/class/corlib/System.Runtime.Versioning/ChangeLog
   
trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceConsumptionAttribute.cs
   trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceExposureAttribute.cs
   trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceScope.cs
   trunk/mcs/class/corlib/System.Runtime.Versioning/VersioningHelper.cs
Log:
2005-10-31  Sebastien Pouliot  <[EMAIL PROTECTED]> 

        * ResourceConsumptionAttribute.cs: New. 2.0 attribute.
        * ResourceExposureAttribute.cs: New. 2.0 attribute.
        * ResourceScope.cs: New. 2.0 enum.
        * VersioningHelper.cs: New. 2.0 public helper class.


Added: trunk/mcs/class/corlib/System.Runtime.Versioning/ChangeLog
===================================================================
--- trunk/mcs/class/corlib/System.Runtime.Versioning/ChangeLog  2005-11-01 
01:31:01 UTC (rev 52432)
+++ trunk/mcs/class/corlib/System.Runtime.Versioning/ChangeLog  2005-11-01 
01:31:16 UTC (rev 52433)
@@ -0,0 +1,6 @@
+2005-10-31  Sebastien Pouliot  <[EMAIL PROTECTED]> 
+
+       * ResourceConsumptionAttribute.cs: New. 2.0 attribute.
+       * ResourceExposureAttribute.cs: New. 2.0 attribute.
+       * ResourceScope.cs: New. 2.0 enum.
+       * VersioningHelper.cs: New. 2.0 public helper class.


Property changes on: trunk/mcs/class/corlib/System.Runtime.Versioning/ChangeLog
___________________________________________________________________
Name: svn:eol-style
   + native

Added: 
trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceConsumptionAttribute.cs
===================================================================
--- 
trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceConsumptionAttribute.cs
    2005-11-01 01:31:01 UTC (rev 52432)
+++ 
trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceConsumptionAttribute.cs
    2005-11-01 01:31:16 UTC (rev 52433)
@@ -0,0 +1,65 @@
+//
+// System.Runtime.Versioning.ResourceConsumptionAttribute class
+//
+// Authors
+//     Sebastien Pouliot  <[EMAIL PROTECTED]>
+//
+// Copyright (C) 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Diagnostics;
+
+namespace System.Runtime.Versioning {
+
+       [AttributeUsage (AttributeTargets.Constructor | AttributeTargets.Method 
| AttributeTargets.Property, Inherited = false)]
+       [Conditional ("RESOURCE_ANNOTATION_WORK")]
+       public sealed class ResourceConsumptionAttribute: Attribute {
+
+               private ResourceScope resource;
+               private ResourceScope consumption;
+
+               public ResourceConsumptionAttribute (ResourceScope 
resourceScope)
+               {
+                       resource = resourceScope;
+                       consumption = resourceScope;
+               }
+
+               public ResourceConsumptionAttribute (ResourceScope 
resourceScope, ResourceScope consumptionScope)
+               {
+                       resource = resourceScope;
+                       consumption = consumptionScope;
+               }
+
+
+               public ResourceScope ConsumptionScope {
+                       get { return consumption; }
+               }
+
+               public ResourceScope ResourceScope {
+                       get { return resource; }
+               }
+       }
+}
+
+#endif


Property changes on: 
trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceConsumptionAttribute.cs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: 
trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceExposureAttribute.cs
===================================================================
--- 
trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceExposureAttribute.cs   
    2005-11-01 01:31:01 UTC (rev 52432)
+++ 
trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceExposureAttribute.cs   
    2005-11-01 01:31:16 UTC (rev 52433)
@@ -0,0 +1,54 @@
+//
+// System.Runtime.Versioning.ResourceExposureAttribute class
+//
+// Authors
+//     Sebastien Pouliot  <[EMAIL PROTECTED]>
+//
+// Copyright (C) 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Diagnostics;
+
+namespace System.Runtime.Versioning {
+
+       [AttributeUsage (AttributeTargets.Constructor | AttributeTargets.Method 
| AttributeTargets.Property | AttributeTargets.Field, Inherited = false)]
+       [Conditional ("RESOURCE_ANNOTATION_WORK")]
+       public sealed class ResourceExposureAttribute: Attribute {
+
+               private ResourceScope exposure;
+               private ResourceScope consumption;
+
+               public ResourceExposureAttribute (ResourceScope exposureLevel)
+               {
+                       exposure = exposureLevel;
+               }
+
+
+               public ResourceScope ResourceExposureLevel {
+                       get { return exposure; }
+               }
+       }
+}
+
+#endif


Property changes on: 
trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceExposureAttribute.cs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceScope.cs
===================================================================
--- trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceScope.cs   
2005-11-01 01:31:01 UTC (rev 52432)
+++ trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceScope.cs   
2005-11-01 01:31:16 UTC (rev 52433)
@@ -0,0 +1,45 @@
+//
+// System.Runtime.Versioning.ResourceScope enumeration
+//
+// Authors
+//     Sebastien Pouliot  <[EMAIL PROTECTED]>
+//
+// Copyright (C) 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+namespace System.Runtime.Versioning {
+
+       [Flags]
+       public enum ResourceScope {
+               None = 0,
+               Machine = 1,
+               Process = 2,
+               AppDomain = 4,
+               Library = 8,
+               Private = 16,
+               Assembly = 32
+       }
+}
+
+#endif


Property changes on: 
trunk/mcs/class/corlib/System.Runtime.Versioning/ResourceScope.cs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/mcs/class/corlib/System.Runtime.Versioning/VersioningHelper.cs
===================================================================
--- trunk/mcs/class/corlib/System.Runtime.Versioning/VersioningHelper.cs        
2005-11-01 01:31:01 UTC (rev 52432)
+++ trunk/mcs/class/corlib/System.Runtime.Versioning/VersioningHelper.cs        
2005-11-01 01:31:16 UTC (rev 52433)
@@ -0,0 +1,120 @@
+//
+// System.Runtime.Versioning.VersioningHelper class
+//
+// Authors
+//     Sebastien Pouliot  <[EMAIL PROTECTED]>
+//
+// Copyright (C) 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+namespace System.Runtime.Versioning {
+
+       public static class VersioningHelper {
+
+               static private int GetProcessId ()
+               {
+                       // TODO - System.Diagnostics.Process class is located 
in System.dll
+                       return 0;
+               }
+
+               static string SafeName (string name, bool process, bool 
appdomain)
+               {
+                       if (process && appdomain) {
+                               return String.Concat (name, "_", GetProcessId 
().ToString (),
+                                       "_", 
AppDomain.CurrentDomain.Id.ToString ());
+                       } else if (process) {
+                               return String.Concat (name, "_", GetProcessId 
().ToString ());
+                       } else if (appdomain) {
+                               return String.Concat (name, "_", 
AppDomain.CurrentDomain.Id.ToString ());
+                       }
+                       // nothing, return original string
+                       return name;
+               }
+
+               static private string ConvertFromMachine (string name, 
ResourceScope to, Type type)
+               {
+                       switch (to) {
+                       case ResourceScope.Machine:
+                               return SafeName (name, false, false);
+                       case ResourceScope.Process:
+                               return SafeName (name, true, false);
+                       case ResourceScope.AppDomain:
+                               return SafeName (name, true, true);
+                       default:
+                               throw new ArgumentException ("to");
+                       }
+               }
+
+               static private string ConvertFromProcess (string name, 
ResourceScope to, Type type)
+               {
+                       if ((to < ResourceScope.Process) || (to >= 
ResourceScope.Private))
+                               throw new ArgumentException ("to");
+                       bool ad = ((to & ResourceScope.AppDomain) == 
ResourceScope.AppDomain);
+                       return SafeName (name, false, ad);
+               }
+
+               static private string ConvertFromAppDomain (string name, 
ResourceScope to, Type type)
+               {
+                       if ((to < ResourceScope.AppDomain) || (to >= 
ResourceScope.Private))
+                               throw new ArgumentException ("to");
+                       return SafeName (name, false, false);
+               }
+
+               [MonoTODO ("process id is always 0")]
+               static public string MakeVersionSafeName (string name, 
ResourceScope from, ResourceScope to)
+               {
+                       return MakeVersionSafeName (name, from, to, null);
+               }
+
+               [MonoTODO ("type?")]
+               static public string MakeVersionSafeName (string name, 
ResourceScope from, ResourceScope to, Type type)
+               {
+                       if ((from & ResourceScope.Private) != 0) {
+                               to &= ~(ResourceScope.Private | 
ResourceScope.Assembly);
+                       } else if ((from & ResourceScope.Assembly) != 0) {
+                               to &= ~ResourceScope.Assembly;
+                       }
+                       
+                       string result = (name == null) ? String.Empty : name;
+                       switch (from) {
+                       case ResourceScope.Machine:
+                       case ResourceScope.Machine | ResourceScope.Private:
+                       case ResourceScope.Machine | ResourceScope.Assembly:
+                               return ConvertFromMachine (result, to, type);
+                       case ResourceScope.Process:
+                       case ResourceScope.Process | ResourceScope.Private:
+                       case ResourceScope.Process | ResourceScope.Assembly:
+                               return ConvertFromProcess (result, to, type);
+                       case ResourceScope.AppDomain:
+                       case ResourceScope.AppDomain | ResourceScope.Private:
+                       case ResourceScope.AppDomain | ResourceScope.Assembly:
+                               return ConvertFromAppDomain (result, to, type);
+                       default:
+                               throw new ArgumentException ("from");
+                       }
+               }
+       }
+}
+
+#endif


Property changes on: 
trunk/mcs/class/corlib/System.Runtime.Versioning/VersioningHelper.cs
___________________________________________________________________
Name: svn:eol-style
   + native

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to