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