Fix a couple of Hello/Probe serialization issues.
[mono.git] / mcs / class / System.ServiceModel.Discovery / System.ServiceModel.Discovery / DiscoveryProxy.cs
index 33a3ffb5e01aa4cae0c47595e69689d1f24e5b9f..f94c3e63e3e45901bb451dac0c2cfbc66c4b0c17 100755 (executable)
@@ -5,17 +5,22 @@ using System.ServiceModel;
 using System.ServiceModel.Channels;
 using System.ServiceModel.Description;
 using System.ServiceModel.Dispatcher;
+using System.ServiceModel.Discovery.Version11;
+using System.ServiceModel.Discovery.VersionApril2005;
+using System.ServiceModel.Discovery.VersionCD1;
 
 namespace System.ServiceModel.Discovery
 {
        [MonoTODO]
-       public abstract class DiscoveryProxy
+       public abstract class DiscoveryProxy : IDiscoveryProxyContract11, IDiscoveryProxyContractApril2005, IDiscoveryProxyContractCD1, IDiscoveryTargetContract11, IDiscoveryTargetContractApril2005, IDiscoveryTargetContractCD1
        {
                protected DiscoveryProxy ()
+                       : this (new DiscoveryMessageSequenceGenerator ())
                {
                }
 
                protected DiscoveryProxy (DiscoveryMessageSequenceGenerator messageSequenceGenerator)
+                       : this (messageSequenceGenerator, 0)
                {
                }
 
@@ -23,6 +28,10 @@ namespace System.ServiceModel.Discovery
                {
                }
 
+               internal DiscoveryMessageSequenceGenerator DiscoveryMessageSequenceGenerator { get; private set; }
+
+               internal int DuplicateMessageHistoryLength { get; private set; }
+
                protected virtual IAsyncResult BeginShouldRedirectFind (FindCriteria resolveCriteria, AsyncCallback callback, Object state)
                {
                        throw new NotImplementedException ();
@@ -52,5 +61,243 @@ namespace System.ServiceModel.Discovery
                protected abstract void OnEndOnlineAnnouncement (IAsyncResult result);
                protected abstract EndpointDiscoveryMetadata OnEndResolve (IAsyncResult result);
 
+
+               #region service contract implementation
+               
+               // IDiscoveryProxyContract11
+               IAsyncResult IDiscoveryProxyContract11.BeginFind (MessageContracts11.FindRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginFind (new DefaultFindRequestContext (message.Body.ToFindCriteria ()), callback, state);
+               }
+
+               MessageContracts11.FindResponse IDiscoveryProxyContract11.EndFind (IAsyncResult result)
+               {
+                       OnEndFind (result);
+                       throw new NotImplementedException ();
+               }
+
+               IAsyncResult IDiscoveryProxyContract11.BeginResolve (MessageContracts11.ResolveRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginResolve (message.Body.ToResolveCriteria (), callback, state);
+               }
+
+               MessageContracts11.ResolveResponse IDiscoveryProxyContract11.EndResolve (IAsyncResult result)
+               {
+                       var ret = OnEndResolve (result);
+                       return new MessageContracts11.ResolveResponse () { MessageSequence = new DiscoveryMessageSequence11 (DiscoveryMessageSequenceGenerator.Next ()), Body = new EndpointDiscoveryMetadata11 (ret) };
+               }
+               
+               // IDiscoveryProxyContractApril2005
+               IAsyncResult IDiscoveryProxyContractApril2005.BeginFind (MessageContractsApril2005.FindRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginFind (new DefaultFindRequestContext (message.Body.ToFindCriteria ()), callback, state);
+               }
+
+               MessageContractsApril2005.FindResponse IDiscoveryProxyContractApril2005.EndFind (IAsyncResult result)
+               {
+                       OnEndFind (result);
+                       throw new NotImplementedException ();
+               }
+
+               IAsyncResult IDiscoveryProxyContractApril2005.BeginResolve (MessageContractsApril2005.ResolveRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginResolve (message.Body.ToResolveCriteria (), callback, state);
+               }
+
+               MessageContractsApril2005.ResolveResponse IDiscoveryProxyContractApril2005.EndResolve (IAsyncResult result)
+               {
+                       var ret = OnEndResolve (result);
+                       return new MessageContractsApril2005.ResolveResponse () { MessageSequence = new DiscoveryMessageSequenceApril2005 (DiscoveryMessageSequenceGenerator.Next ()), Body = new EndpointDiscoveryMetadataApril2005 (ret) };
+               }
+               
+               // IDiscoveryProxyContractCD1
+               IAsyncResult IDiscoveryProxyContractCD1.BeginFind (MessageContractsCD1.FindRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginFind (new DefaultFindRequestContext (message.Body.ToFindCriteria ()), callback, state);
+               }
+
+               MessageContractsCD1.FindResponse IDiscoveryProxyContractCD1.EndFind (IAsyncResult result)
+               {
+                       OnEndFind (result);
+                       throw new NotImplementedException ();
+               }
+
+               IAsyncResult IDiscoveryProxyContractCD1.BeginResolve (MessageContractsCD1.ResolveRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginResolve (message.Body.ToResolveCriteria (), callback, state);
+               }
+
+               MessageContractsCD1.ResolveResponse IDiscoveryProxyContractCD1.EndResolve (IAsyncResult result)
+               {
+                       var ret = OnEndResolve (result);
+                       return new MessageContractsCD1.ResolveResponse () { MessageSequence = new DiscoveryMessageSequenceCD1 (DiscoveryMessageSequenceGenerator.Next ()), Body = new EndpointDiscoveryMetadataCD1 (ret) };
+               }
+
+               // IDiscoveryTargetContract11
+               IAsyncResult IDiscoveryTargetContract11.BeginFind (MessageContracts11.FindRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginFind (new DefaultFindRequestContext (message.Body.ToFindCriteria ()), callback, state);
+               }
+
+               void IDiscoveryTargetContract11.EndFind (IAsyncResult result)
+               {
+                       OnEndFind (result);
+               }
+
+               IAsyncResult IDiscoveryTargetContract11.BeginReplyFind (MessageContracts11.FindResponse message, AsyncCallback callback, object state)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               void IDiscoveryTargetContract11.EndReplyFind (IAsyncResult result)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               IAsyncResult IDiscoveryTargetContract11.BeginResolve (MessageContracts11.ResolveRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginResolve (message.Body.ToResolveCriteria (), callback, state);
+               }
+
+               void IDiscoveryTargetContract11.EndResolve (IAsyncResult result)
+               {
+                       OnEndResolve (result);
+               }
+
+               IAsyncResult IDiscoveryTargetContract11.BeginReplyResolve (MessageContracts11.ResolveResponse message, AsyncCallback callback, object state)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               void IDiscoveryTargetContract11.EndReplyResolve (IAsyncResult result)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               IAsyncResult IDiscoveryTargetContract11.BeginOnlineAnnouncement (MessageContracts11.OnlineAnnouncement message, AsyncCallback callback, object state)
+               {
+                       return OnBeginOnlineAnnouncement (DiscoveryMessageSequenceGenerator.Next (), message.EndpointDiscoveryMetadata.ToEndpointDiscoveryMetadata (), callback, state);
+               }
+
+               void IDiscoveryTargetContract11.EndOnlineAnnouncement (IAsyncResult result)
+               {
+                       OnEndOnlineAnnouncement (result);
+               }
+
+               // IDiscoveryTargetContractApril2005
+               IAsyncResult IDiscoveryTargetContractApril2005.BeginFind (MessageContractsApril2005.FindRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginFind (new DefaultFindRequestContext (message.Body.ToFindCriteria ()), callback, state);
+               }
+
+               void IDiscoveryTargetContractApril2005.EndFind (IAsyncResult result)
+               {
+                       OnEndFind (result);
+               }
+
+               IAsyncResult IDiscoveryTargetContractApril2005.BeginReplyFind (MessageContractsApril2005.FindResponse message, AsyncCallback callback, object state)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               void IDiscoveryTargetContractApril2005.EndReplyFind (IAsyncResult result)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               IAsyncResult IDiscoveryTargetContractApril2005.BeginResolve (MessageContractsApril2005.ResolveRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginResolve (message.Body.ToResolveCriteria (), callback, state);
+               }
+
+               void IDiscoveryTargetContractApril2005.EndResolve (IAsyncResult result)
+               {
+                       OnEndResolve (result);
+               }
+
+               IAsyncResult IDiscoveryTargetContractApril2005.BeginReplyResolve (MessageContractsApril2005.ResolveResponse message, AsyncCallback callback, object state)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               void IDiscoveryTargetContractApril2005.EndReplyResolve (IAsyncResult result)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               IAsyncResult IDiscoveryTargetContractApril2005.BeginOnlineAnnouncement (MessageContractsApril2005.OnlineAnnouncement message, AsyncCallback callback, object state)
+               {
+                       return OnBeginOnlineAnnouncement (DiscoveryMessageSequenceGenerator.Next (), message.EndpointDiscoveryMetadata.ToEndpointDiscoveryMetadata (), callback, state);
+               }
+
+               void IDiscoveryTargetContractApril2005.EndOnlineAnnouncement (IAsyncResult result)
+               {
+                       OnEndOnlineAnnouncement (result);
+               }
+
+               // IDiscoveryTargetContractCD1
+               IAsyncResult IDiscoveryTargetContractCD1.BeginFind (MessageContractsCD1.FindRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginFind (new DefaultFindRequestContext (message.Body.ToFindCriteria ()), callback, state);
+               }
+
+               void IDiscoveryTargetContractCD1.EndFind (IAsyncResult result)
+               {
+                       OnEndFind (result);
+               }
+
+               IAsyncResult IDiscoveryTargetContractCD1.BeginReplyFind (MessageContractsCD1.FindResponse message, AsyncCallback callback, object state)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               void IDiscoveryTargetContractCD1.EndReplyFind (IAsyncResult result)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               IAsyncResult IDiscoveryTargetContractCD1.BeginResolve (MessageContractsCD1.ResolveRequest message, AsyncCallback callback, object state)
+               {
+                       return OnBeginResolve (message.Body.ToResolveCriteria (), callback, state);
+               }
+
+               void IDiscoveryTargetContractCD1.EndResolve (IAsyncResult result)
+               {
+                       OnEndResolve (result);
+               }
+
+               IAsyncResult IDiscoveryTargetContractCD1.BeginReplyResolve (MessageContractsCD1.ResolveResponse message, AsyncCallback callback, object state)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               void IDiscoveryTargetContractCD1.EndReplyResolve (IAsyncResult result)
+               {
+                       // is it expected to be invoked??
+                       throw new NotImplementedException ();
+               }
+
+               IAsyncResult IDiscoveryTargetContractCD1.BeginOnlineAnnouncement (MessageContractsCD1.OnlineAnnouncement message, AsyncCallback callback, object state)
+               {
+                       return OnBeginOnlineAnnouncement (DiscoveryMessageSequenceGenerator.Next (), message.EndpointDiscoveryMetadata.ToEndpointDiscoveryMetadata (), callback, state);
+               }
+
+               void IDiscoveryTargetContractCD1.EndOnlineAnnouncement (IAsyncResult result)
+               {
+                       OnEndOnlineAnnouncement (result);
+               }
+
+               #endregion
        }
 }