2004-12-03 Lluis Sanchez Gual <lluis@novell.com>
[mono.git] / mcs / class / corlib / System.Reflection / MethodAttributes.cs
index cd8e9b350fe45cbac32647acfae139b7547f3f8a..05277cc023c5a0ca03f45b39f08abcf7f249fb37 100755 (executable)
-// MethodAttributes.cs\r
-//\r
-// This code was automatically generated from\r
-// ECMA CLI XML Library Specification.\r
-// Generator: libgen.xsl\r
-// Source file: all.xml\r
-// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
-//\r
-// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
-\r
-\r
-namespace System.Reflection {\r
-\r
-\r
-       /// <summary>\r
-       /// <para> \r
-       ///                   Specifies flags for method attributes. These flags are defined in corhdr.h.</para>\r
-       /// </summary>\r
-       /// <remarks>\r
-       /// <para> \r
-       ///                   This set of attributes is a combination of Enumeration\r
-       ///                   and bit flags.</para>\r
-       /// <para> The enumerated\r
-       ///                   value is a number representing the bitwise OR of the attributes\r
-       ///                   implemented on the method.</para>\r
-       /// <para> \r
-       ///                   Accessibility information masks:</para>\r
-       /// <list type="bullet">\r
-       /// <item>\r
-       /// <term>\r
-       ///                      MemberAccessMask = 0x0007</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                      PrivateScope = 0x0000</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                      Private = 0x0001</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                      FamANDAssem = 0x0002</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                      Assembly = 0x0003</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                      Family = 0x0004</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                      FamORAssem = 0x0005</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                      Public = 0x0006</term>\r
-       /// </item>\r
-       /// </list>\r
-       /// <para> Method contract attributes masks:</para>\r
-       /// <list type="bullet">\r
-       /// <item>\r
-       /// <term>\r
-       ///                   Static = 0x0010</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                   Final = 0x0020</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                   Virtual = 0x0040</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                   HideBySig = 0x0080</term>\r
-       /// </item>\r
-       /// </list>\r
-       /// <para> Vtable attributes\r
-       ///                masks:</para>\r
-       /// <list type="bullet">\r
-       /// <item>\r
-       /// <term>\r
-       ///                   VtableLayoutMask = 0x0100</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                   ReuseSlot = 0x0000</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                   NewSlot = 0x0100</term>\r
-       /// </item>\r
-       /// </list>\r
-       /// <para>Method implementation attributes:</para>\r
-       /// <list type="bullet">\r
-       /// <item>\r
-       /// <term>\r
-       ///                   Abstract = 0x0400</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                   SpecialName = 0x0800</term>\r
-       /// </item>\r
-       /// </list>\r
-       /// <para>Interop attributes masks:</para>\r
-       /// <list type="bullet">\r
-       /// <item>\r
-       /// <term>\r
-       ///                   PinvokeImpl = 0x2000</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                   UnmanagedExport = 0x0008</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       /// <para>RTSpecialName = 0x1000</para>\r
-       /// </term>\r
-       /// </item>\r
-       /// </list>\r
-       /// <para>Reserved flags for runtime use only:</para>\r
-       /// <list type="bullet">\r
-       /// <item>\r
-       /// <term>\r
-       ///                   ReservedMask = 0xd000</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                   HasSecurity = 0x4000</term>\r
-       /// </item>\r
-       /// <item>\r
-       /// <term>\r
-       ///                   RequireSecObject = 0x8000</term>\r
-       /// </item>\r
-       /// </list>\r
-       /// </remarks>\r
-       /// <example>\r
-       /// <code lang="C#">using System;\r
-       ///             using System.Reflection;\r
-       ///             \r
-       ///             class AttributesSample\r
-       ///             {\r
-       ///                public void Mymethod ( [in] int int1m, out string str2m, ref string str3m)\r
-       ///                {\r
-       ///                   str2m = "in Mymethod";\r
-       ///                }\r
-       ///             \r
-       ///                public static int Main(string[] args)\r
-       ///                {      \r
-       ///                   Console.WriteLine ("Reflection.MethodBase.Attributes Sample");\r
-       ///                   \r
-       ///                   // Get our type\r
-       ///                   Type MyType = Type.GetType("AttributesSample");\r
-       ///             \r
-       ///                   // Get the method Mymethod on our type\r
-       ///                   MethodBase Mymethodbase = MyType.GetMethod("Mymethod");\r
-       ///             \r
-       ///                   // Print out the method\r
-       ///                   Console.WriteLine("Mymethodbase = " + Mymethodbase);\r
-       ///             \r
-       ///                   // Get the MethodAttribute enumerated value\r
-       ///                   MethodAttributes Myattributes = Mymethodbase.Attributes;\r
-       ///             \r
-       ///                   // print out the flags set\r
-       ///                   PrintAttributes( typeof( System.Reflection.MethodAttributes ), (int) Myattributes );\r
-       ///                   return 0;\r
-       ///                }\r
-       ///             \r
-       ///             \r
-       ///                public static void PrintAttributes( Type attribType, int iAttribValue )\r
-       ///                {\r
-       ///                   if ( ! attribType.IsEnum ) { Console.WriteLine( "This type is not an enum" ); return; }\r
-       ///             \r
-       ///                   FieldInfo[] fields = attribType.GetFields(BindingFlags.Public | BindingFlags.Static);\r
-       ///                   for ( int i = 0; i &lt; fields.Length; i++ )\r
-       ///                   {\r
-       ///                      int fieldvalue = (Int32)fields[i].GetValue(null);\r
-       ///                      if ( (fieldvalue &amp; iAttribValue) == fieldvalue )\r
-       ///                      {\r
-       ///                         Console.WriteLine( "\t" + fields[i].Name );\r
-       ///                      }\r
-       ///                   }\r
-       ///                }\r
-       ///             }\r
-       ///             \r
-       ///             This code produces the following output:\r
-       ///             \r
-       ///             Reflection.MethodBase.Attributes Sample\r
-       ///             Mymethodbase = Void Mymethod (Int32, System.String ByRef, System.String ByRef)\r
-       ///                     PrivateScope\r
-       ///                     FamANDAssem\r
-       ///                     Family\r
-       ///                     Public \r
-       ///                     HideBySig \r
-       ///                     ReuseSlot\r
-       ///                </code>\r
-       /// </example>\r
-       public enum MethodAttributes {\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Retrieves accessibility information.\r
-               ///                </para>\r
-               /// </summary>\r
-               MemberAccessMask = 7,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the member cannot be referenced.\r
-               ///                </para>\r
-               /// </summary>\r
-               PrivateScope = 0,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method is accessible only to the current\r
-               ///                   class and the parent class.\r
-               ///                </para>\r
-               /// </summary>\r
-               Private = 1,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method is accessible only to members of this class and\r
-               ///                   its subclasses.\r
-               ///                </para>\r
-               /// </summary>\r
-               FamANDAssem = 2,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method is accessible to any class of this\r
-               ///                   assembly.\r
-               ///                </para>\r
-               /// </summary>\r
-               Assembly = 3,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method is accessible only to members of\r
-               ///                   this class and its subclasses.\r
-               ///                </para>\r
-               /// </summary>\r
-               Family = 4,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method is accesssible to subclasses\r
-               ///                   anywhere, as well as to any class in the assembly.\r
-               ///                </para>\r
-               /// </summary>\r
-               FamORAssem = 5,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method is accessible to any object for\r
-               ///                   which this object is in scope.\r
-               ///                </para>\r
-               /// </summary>\r
-               Public = 6,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method is defined on the type;\r
-               ///                   otherwise, it is defined per instance.\r
-               ///                </para>\r
-               /// </summary>\r
-               Static = 16,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method cannot be overriden.\r
-               ///                </para>\r
-               /// </summary>\r
-               Final = 32,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method is virtual.\r
-               ///                </para>\r
-               /// </summary>\r
-               Virtual = 64,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method hides by name and signature;\r
-               ///                   otherwise, by name only.\r
-               ///                </para>\r
-               /// </summary>\r
-               HideBySig = 128,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Retrieves vtable\r
-               ///                   attributes.\r
-               ///                </para>\r
-               /// </summary>\r
-               VtableLayoutMask = 256,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method will reuse an existing slot in\r
-               ///                   the vtable. This is\r
-               ///                   the default behavior.\r
-               ///                </para>\r
-               /// </summary>\r
-               ReuseSlot = 0,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method always gets a new slot in the\r
-               ///                   vtable.\r
-               ///                </para>\r
-               /// </summary>\r
-               NewSlot = 256,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the class does not provide an implementation of\r
-               ///                   this method.\r
-               ///                </para>\r
-               /// </summary>\r
-               Abstract = 1024,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method is special. The name describes how this method is special.\r
-               ///                </para>\r
-               /// </summary>\r
-               SpecialName = 2048,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the method implementation is forwarded\r
-               ///                   through PInvoke (Platform Invocation\r
-               ///                   Services).\r
-               ///                </para>\r
-               /// </summary>\r
-               PinvokeImpl = 8192,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the managed method is exported by thunk to\r
-               ///                   unmanaged code.\r
-               ///                </para>\r
-               /// </summary>\r
-               UnmanagedExport = 8,\r
-\r
-               /// <summary>\r
-               /// <para>Indicates that the Common Language Runtime checks the name encoding.</para>\r
-               /// </summary>\r
-               RTSpecialName = 4096,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates a reserved flag for runtime use only.\r
-               ///                </para>\r
-               /// </summary>\r
-               ReservedMask = 53248,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the\r
-               ///                   method has security associated with it. Reserved flag for runtime use only.\r
-               ///                </para>\r
-               /// </summary>\r
-               HasSecurity = 16384,\r
-\r
-               /// <summary>\r
-               /// <para>\r
-               ///                   Indicates that the\r
-               ///                   method calls another method containing security code. Reserved flag for runtime\r
-               ///                   use only.\r
-               ///                </para>\r
-               /// </summary>\r
-               RequireSecObject = 32768,\r
-       } // MethodAttributes\r
-\r
-} // System.Reflection\r
+// MethodAttributes.cs
+//
+// This code was automatically generated from
+// ECMA CLI XML Library Specification.
+// Generator: libgen.xsl [1.0; (C) Sergey Chaban (serge@wildwestsoftware.com)]
+// Created: Wed, 5 Sep 2001 06:39:32 UTC
+// Source file: all.xml
+// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml
+//
+// (C) 2001 Ximian, Inc.  http://www.ximian.com
+
+//
+// Copyright (C) 2004 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.
+//
+
+
+namespace System.Reflection {
+
+
+       /// <summary>
+       /// </summary>
+       [Flags]
+       public enum MethodAttributes {
+
+               /// <summary>
+               /// </summary>
+               MemberAccessMask = 7,
+
+               /// <summary>
+               /// </summary>
+               PrivateScope = 0,
+
+               /// <summary>
+               /// </summary>
+               Private = 1,
+
+               /// <summary>
+               /// </summary>
+               FamANDAssem = 2,
+
+               /// <summary>
+               /// </summary>
+               Assembly = 3,
+
+               /// <summary>
+               /// </summary>
+               Family = 4,
+
+               /// <summary>
+               /// </summary>
+               FamORAssem = 5,
+
+               /// <summary>
+               /// </summary>
+               Public = 6,
+
+               /// <summary>
+               /// </summary>
+               Static = 16,
+
+               /// <summary>
+               /// </summary>
+               Final = 32,
+
+               /// <summary>
+               /// </summary>
+               Virtual = 64,
+
+               /// <summary>
+               /// </summary>
+               HideBySig = 128,
+
+               /// <summary>
+               /// </summary>
+               VtableLayoutMask = 256,
+
+#if NET_1_1
+               /// <summary>
+               /// </summary>          
+               CheckAccessOnOverride = 512,
+#endif
+
+               /// <summary>
+               /// </summary>
+               ReuseSlot = 0,
+
+               /// <summary>
+               /// </summary>
+               NewSlot = 256,
+
+               /// <summary>
+               /// </summary>
+               Abstract = 1024,
+
+               /// <summary>
+               /// </summary>
+               SpecialName = 2048,
+
+               /// <summary>
+               /// </summary>
+               PinvokeImpl = 8192,
+
+               /// <summary>
+               /// </summary>
+               UnmanagedExport = 8,
+
+               /// <summary>
+               /// </summary>
+               RTSpecialName = 4096,
+
+               /// <summary>
+               /// </summary>
+               ReservedMask = 53248,
+
+               /// <summary>
+               /// </summary>
+               HasSecurity = 16384,
+
+               /// <summary>
+               /// </summary>
+               RequireSecObject = 32768,
+       } // MethodAttributes
+
+} // System.Reflection