Author: atsushi
Date: 2006-11-30 08:47:48 -0500 (Thu, 30 Nov 2006)
New Revision: 68741

Modified:
   
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog
   
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolReflector.cs
   
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
   
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/Methods.cs
   
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderMapping.cs
   
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessage.cs
Log:
2006-11-30  Atsushi Enomoto  <[EMAIL PROTECTED]>

        * SoapHeaderMapping.cs : Now HeaderInfo became this type to implement
          this class. Remapped some members (e.g. IsUnknownHeader -> Custom).
        * Methods.cs : so, split HeaderInfo from here.
        * SoapMessage.cs : Added alias HeaderInfo to SoapHeaderMapping.
          Renamed some properties.

        * SoapProtocolReflector.cs : Added alias HeaderInfo to
          SoapHeaderMapping. Renamed some properties.



Modified: 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog
===================================================================
--- 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog
    2006-11-30 11:37:50 UTC (rev 68740)
+++ 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog
    2006-11-30 13:47:48 UTC (rev 68741)
@@ -1,5 +1,10 @@
 2006-11-30  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
+       * SoapProtocolReflector.cs : Added alias HeaderInfo to
+         SoapHeaderMapping. Renamed some properties.
+
+2006-11-30  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
        * HttpSimpleProtocolReflector.cs : LogicalTypeInfo -> ServerType.
 
 2006-11-30  Atsushi Enomoto  <[EMAIL PROTECTED]>

Modified: 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolReflector.cs
===================================================================
--- 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolReflector.cs
     2006-11-30 11:37:50 UTC (rev 68740)
+++ 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolReflector.cs
     2006-11-30 13:47:48 UTC (rev 68741)
@@ -95,9 +95,9 @@
                        AddOperationMsgBindings (method, 
OperationBinding.Input);
                        AddOperationMsgBindings (method, 
OperationBinding.Output);
 
-                       foreach (HeaderInfo hf in method.Headers)
+                       foreach (SoapHeaderMapping hf in method.Headers)
                        {
-                               if (hf.IsUnknownHeader) continue;
+                               if (hf.Custom) continue;
                                
                                Message msg = new Message ();
                                msg.Name = Operation.Name + hf.HeaderType.Name;

Modified: 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
===================================================================
--- 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
      2006-11-30 11:37:50 UTC (rev 68740)
+++ 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
      2006-11-30 13:47:48 UTC (rev 68741)
@@ -1,5 +1,13 @@
 2006-11-30  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
+       * SoapHeaderMapping.cs : Now HeaderInfo became this type to implement
+         this class. Remapped some members (e.g. IsUnknownHeader -> Custom).
+       * Methods.cs : so, split HeaderInfo from here.
+       * SoapMessage.cs : Added alias HeaderInfo to SoapHeaderMapping.
+         Renamed some properties.
+
+2006-11-30  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
        * ServerType.cs : Now LogicalTypeInfo became this type to implement
          this class (and SoapTypeStubInfo to SoapServerType later).
        * TypeStubManager.cs : so, split LogicalTypeInfo from here.

Modified: 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/Methods.cs
===================================================================
--- 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/Methods.cs
     2006-11-30 11:37:50 UTC (rev 68740)
+++ 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/Methods.cs
     2006-11-30 13:47:48 UTC (rev 68741)
@@ -29,6 +29,8 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+using HeaderInfo = System.Web.Services.Protocols.SoapHeaderMapping;
+
 using System.Reflection;
 using System.Collections;
 using System.Xml;
@@ -223,7 +225,7 @@
                                
                                HeaderInfo header = new HeaderInfo (mems[0], 
att);
                                allHeaderList.Add (header);
-                               if (!header.IsUnknownHeader) {
+                               if (!header.Custom) {
                                        if ((header.Direction & 
SoapHeaderDirection.In) != 0)
                                                inHeaderList.Add (header);
                                        if ((header.Direction & 
SoapHeaderDirection.Out) != 0)
@@ -427,64 +429,6 @@
                }
        }
 
-       internal class HeaderInfo
-       {
-               internal MemberInfo Member;
-               internal SoapHeaderAttribute AttributeInfo;
-               internal Type HeaderType;
-               internal bool IsUnknownHeader;
-
-               public HeaderInfo (MemberInfo member, SoapHeaderAttribute 
attributeInfo)
-               {
-                       Member = member;
-                       AttributeInfo = attributeInfo;
-                       if (Member is PropertyInfo) HeaderType = 
((PropertyInfo)Member).PropertyType;
-                       else HeaderType = ((FieldInfo)Member).FieldType;
-                       
-                       if (HeaderType == typeof(SoapHeader) || HeaderType == 
typeof(SoapUnknownHeader) ||
-                               HeaderType == typeof(SoapHeader[]) || 
HeaderType == typeof(SoapUnknownHeader[]))
-                       {
-                               IsUnknownHeader = true;
-                       }
-                       else if (!typeof(SoapHeader).IsAssignableFrom 
(HeaderType))
-                               throw new InvalidOperationException 
(string.Format ("Header members type must be a SoapHeader subclass"));
-               }
-               
-               public object GetHeaderValue (object ob)
-               {
-                       if (Member is PropertyInfo) return 
((PropertyInfo)Member).GetValue (ob, null);
-                       else return ((FieldInfo)Member).GetValue (ob);
-               }
-
-               public void SetHeaderValue (object ob, SoapHeader header)
-               {
-                       object value = header;
-                       if (IsUnknownHeader && HeaderType.IsArray)
-                       {
-                               SoapUnknownHeader uheader = header as 
SoapUnknownHeader;
-                               SoapUnknownHeader[] array = 
(SoapUnknownHeader[]) GetHeaderValue (ob);
-                               if (array == null || array.Length == 0) {
-                                       value = new SoapUnknownHeader[] { 
uheader };
-                               }
-                               else {
-                                       SoapUnknownHeader[] newArray = new 
SoapUnknownHeader [array.Length+1];
-                                       Array.Copy (array, newArray, 
array.Length);
-                                       newArray [array.Length] = uheader;
-                                       value = newArray;
-                               }
-                       }
-                       
-                       if (Member is PropertyInfo) 
((PropertyInfo)Member).SetValue (ob, value, null);
-                       else ((FieldInfo)Member).SetValue (ob, value);
-               }
-               
-               public SoapHeaderDirection Direction
-               {
-                       get { return AttributeInfo.Direction; }
-               }
-       }
-
-
        //
        // Holds the metadata loaded from the type stub, as well as
        // the metadata for all the methods in the type

Modified: 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderMapping.cs
===================================================================
--- 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderMapping.cs
   2006-11-30 11:37:50 UTC (rev 68740)
+++ 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderMapping.cs
   2006-11-30 13:47:48 UTC (rev 68741)
@@ -28,36 +28,87 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_2_0
-
 using System.Reflection;
 
 namespace System.Web.Services.Protocols
 {
-       public sealed class SoapHeaderMapping
+#if NET_2_0
+       public
+#else
+       internal
+#endif
+       sealed class SoapHeaderMapping
        {
-               internal SoapHeaderMapping ()
+               MemberInfo member;
+               Type header_type;
+               bool is_unknown_header;
+               SoapHeaderDirection direction;
+
+               internal SoapHeaderMapping (MemberInfo member, 
SoapHeaderAttribute attributeInfo)
                {
+                       this.member = member;
+                       direction = attributeInfo.Direction;
+                       if (member is PropertyInfo)
+                               header_type = ((PropertyInfo) 
member).PropertyType;
+                       else
+                               header_type = ((FieldInfo) member).FieldType;
+                       
+                       if (HeaderType == typeof(SoapHeader) || HeaderType == 
typeof(SoapUnknownHeader) ||
+                               HeaderType == typeof(SoapHeader[]) || 
HeaderType == typeof(SoapUnknownHeader[]))
+                       {
+                               is_unknown_header = true;
+                       }
+                       else if (!typeof(SoapHeader).IsAssignableFrom 
(HeaderType))
+                               throw new InvalidOperationException 
(string.Format ("Header members type must be a SoapHeader subclass"));
                }
+               
+               internal object GetHeaderValue (object ob)
+               {
+                       if (member is PropertyInfo)
+                               return ((PropertyInfo) member).GetValue (ob, 
null);
+                       else
+                               return ((FieldInfo) member).GetValue (ob);
+               }
 
-               [MonoTODO]
-               public bool Custom {
-                       get { throw new NotImplementedException (); }
+               internal void SetHeaderValue (object ob, SoapHeader header)
+               {
+                       object value = header;
+                       if (Custom && HeaderType.IsArray)
+                       {
+                               SoapUnknownHeader uheader = header as 
SoapUnknownHeader;
+                               SoapUnknownHeader[] array = 
(SoapUnknownHeader[]) GetHeaderValue (ob);
+                               if (array == null || array.Length == 0) {
+                                       value = new SoapUnknownHeader[] { 
uheader };
+                               }
+                               else {
+                                       SoapUnknownHeader[] newArray = new 
SoapUnknownHeader [array.Length+1];
+                                       Array.Copy (array, newArray, 
array.Length);
+                                       newArray [array.Length] = uheader;
+                                       value = newArray;
+                               }
+                       }
+                       
+                       if (member is PropertyInfo)
+                               ((PropertyInfo) member).SetValue (ob, value, 
null);
+                       else
+                               ((FieldInfo) member).SetValue (ob, value);
                }
+               
+               public SoapHeaderDirection Direction
+               {
+                       get { return direction; }
+               }
 
-               [MonoTODO]
-               public SoapHeaderDirection Direction {
-                       get { throw new NotImplementedException (); }
+               public MemberInfo MemberInfo {
+                       get { return member; }
                }
 
-               [MonoTODO]
                public Type HeaderType {
-                       get { throw new NotImplementedException (); }
+                       get { return header_type; }
                }
 
-               [MonoTODO]
-               public MemberInfo MemberInfo {
-                       get { throw new NotImplementedException (); }
+               public bool Custom {
+                       get { return is_unknown_header; }
                }
 
                [MonoTODO]
@@ -65,6 +116,5 @@
                        get { throw new NotImplementedException (); }
                }
        }
+
 }
-
-#endif

Modified: 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessage.cs
===================================================================
--- 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessage.cs
 2006-11-30 11:37:50 UTC (rev 68740)
+++ 
branches/atsushi/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessage.cs
 2006-11-30 13:47:48 UTC (rev 68741)
@@ -29,6 +29,8 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+using HeaderInfo = System.Web.Services.Protocols.SoapHeaderMapping;
+
 using System.ComponentModel;
 using System.IO;
 using System.Web.Services;
@@ -206,7 +208,7 @@
                        Headers.Clear ();
                        foreach (HeaderInfo hi in headers) 
                        {
-                               if ((hi.Direction & direction) != 0 && 
!hi.IsUnknownHeader) 
+                               if ((hi.Direction & direction) != 0 && 
!hi.Custom) 
                                {
                                        SoapHeader headerVal = 
hi.GetHeaderValue (target) as SoapHeader;
                                        if (headerVal != null)
@@ -222,7 +224,7 @@
                                HeaderInfo hinfo = FindHeader (headersInfo, 
header.GetType ());
                                if (hinfo != null) {
                                        hinfo.SetHeaderValue (target, header);
-                                       header.DidUnderstand = 
!hinfo.IsUnknownHeader;
+                                       header.DidUnderstand = !hinfo.Custom;
                                }
                        }
                }
@@ -234,7 +236,7 @@
                        foreach (HeaderInfo headerInfo in headersInfo) {
                                if (headerInfo.HeaderType == headerType)
                                        return headerInfo;
-                               else if (headerInfo.IsUnknownHeader) 
+                               else if (headerInfo.Custom) 
                                        unknownHeaderInfo = headerInfo;
                        }
                        return unknownHeaderInfo;

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

Reply via email to