Imported Upstream version 3.6.0

Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
This commit is contained in:
Jo Shields
2014-08-13 10:39:27 +01:00
commit a575963da9
50588 changed files with 8155799 additions and 0 deletions

View File

@ -0,0 +1,69 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.ServiceModel.Discovery;
namespace System.ServiceModel.Discovery.VersionApril2005
{
internal class AnnouncementClientApril2005 : ClientBase<IAnnouncementContractApril2005>, AnnouncementClient.IAnnouncementCommon
{
public AnnouncementClientApril2005 (AnnouncementEndpoint endpoint)
: base (endpoint)
{
}
public IAsyncResult BeginAnnounceOnline (EndpointDiscoveryMetadata metadata, DiscoveryMessageSequence sequence, AsyncCallback callback, object state)
{
var md = new EndpointDiscoveryMetadataApril2005 (metadata);
var seq = new DiscoveryMessageSequenceApril2005 (sequence);
var msg = new MessageContractsApril2005.OnlineAnnouncement () { EndpointDiscoveryMetadata = md, MessageSequence = seq };
return Channel.BeginOnlineAnnouncement (msg, callback, state);
}
public void EndAnnounceOnline (IAsyncResult result)
{
Channel.EndOnlineAnnouncement (result);
}
public IAsyncResult BeginAnnounceOffline (EndpointDiscoveryMetadata metadata, DiscoveryMessageSequence sequence, AsyncCallback callback, object state)
{
var md = new EndpointDiscoveryMetadataApril2005 (metadata);
var seq = new DiscoveryMessageSequenceApril2005 (sequence);
var msg = new MessageContractsApril2005.OfflineAnnouncement () { EndpointDiscoveryMetadata = md, MessageSequence = seq };
return Channel.BeginOfflineAnnouncement (msg, callback, state);
}
public void EndAnnounceOffline (IAsyncResult result)
{
Channel.EndOfflineAnnouncement (result);
}
}
}

View File

@ -0,0 +1,4 @@
2010-03-19 Atsushi Enomoto <atsushi@ximian.com>
* : initial checkin (mostly stubs).

View File

@ -0,0 +1,97 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2009,2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
namespace System.ServiceModel.Discovery.VersionApril2005
{
[XmlSchemaProvider ("GetSchema")]
public class DiscoveryMessageSequenceApril2005 : IXmlSerializable
{
public static DiscoveryMessageSequenceApril2005 FromDiscoveryMessageSequence (DiscoveryMessageSequence discoveryMessageSequence)
{
return new DiscoveryMessageSequenceApril2005 (discoveryMessageSequence);
}
static readonly DiscoveryVersion version = DiscoveryVersion.WSDiscoveryApril2005;
static XmlSchema schema;
static XmlSchema Schema {
get {
if (schema == null)
schema = DiscoveryMessageSequence.BuildSchema (version);
return schema;
}
}
public static XmlQualifiedName GetSchema (XmlSchemaSet schemaSet)
{
schemaSet.Add (Schema);
return new XmlQualifiedName ("AppSequenceType", version.Namespace);
}
// for deserialization
DiscoveryMessageSequenceApril2005 ()
{
}
internal DiscoveryMessageSequenceApril2005 (DiscoveryMessageSequence source)
{
this.source = source;
}
DiscoveryMessageSequence source;
public XmlSchema GetSchema ()
{
return Schema;
}
public void ReadXml (XmlReader reader)
{
source = DiscoveryMessageSequence.ReadXml (reader, version);
}
public DiscoveryMessageSequence ToDiscoveryMessageSequence ()
{
if (source == null)
throw new InvalidOperationException ("Call ReadXml method first to fill its contents");
return source;
}
public void WriteXml (XmlWriter writer)
{
source.WriteXml (writer);
}
}
}

View File

@ -0,0 +1,72 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2009,2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
namespace System.ServiceModel.Discovery.VersionApril2005
{
internal class DiscoveryProxyClientApril2005 : ClientBase<IDiscoveryProxyContractApril2005>, DiscoveryClient.IDiscoveryCommon
{
public DiscoveryProxyClientApril2005 (ServiceEndpoint endpoint)
: base (endpoint)
{
}
public IAsyncResult BeginFind (FindCriteria criteria, AsyncCallback callback, object state)
{
var req = new MessageContractsApril2005.FindRequest () { Body = new FindCriteriaApril2005 (criteria) };
return Channel.BeginFind (req, callback, state);
}
public FindResponse EndFind (IAsyncResult result)
{
var ir = Channel.EndFind (result);
var ret = new FindResponse ();
foreach (var fr in ir.Body)
ret.Endpoints.Add (fr.ToEndpointDiscoveryMetadata ());
return ret;
}
public IAsyncResult BeginResolve (ResolveCriteria criteria, AsyncCallback callback, object state)
{
var req = new MessageContractsApril2005.ResolveRequest () { Body = new ResolveCriteriaApril2005 (criteria) };
return Channel.BeginResolve (req, callback, state);
}
public ResolveResponse EndResolve (IAsyncResult result)
{
var ir = Channel.EndResolve (result);
var metadata = ir.Body.ToEndpointDiscoveryMetadata ();
var sequence = ir.MessageSequence.ToDiscoveryMessageSequence ();
return new ResolveResponse (metadata, sequence);
}
}
}

View File

@ -0,0 +1,153 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2009,2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.Threading;
namespace System.ServiceModel.Discovery.VersionApril2005
{
internal class DiscoveryTargetClientApril2005 : DuplexClientBase<IDiscoveryTargetContractApril2005>, DiscoveryClient.IDiscoveryCommon
{
public DiscoveryTargetClientApril2005 (ServiceEndpoint endpoint)
: this (new DiscoveryTargetCallbackApril2005 (), endpoint)
{
}
DiscoveryTargetClientApril2005 (DiscoveryTargetCallbackApril2005 instance, ServiceEndpoint endpoint)
: base (instance, endpoint)
{
instance.ReplyFindCompleted += delegate (MessageContractsApril2005.FindResponse response) {
find_completed = delegate { return response; };
reply_find_handle.Set ();
};
instance.ReplyResolveCompleted += delegate (MessageContractsApril2005.ResolveResponse response) {
resolve_completed = delegate { return response; };
reply_resolve_handle.Set ();
};
}
// Find
Func<FindCriteria,FindResponse> find_delegate;
Func<MessageContractsApril2005.FindResponse> find_completed;
ManualResetEvent reply_find_handle = new ManualResetEvent (false);
public IAsyncResult BeginFind (FindCriteria criteria, AsyncCallback callback, object state)
{
if (find_delegate == null)
find_delegate = new Func<FindCriteria,FindResponse> (Find);
return find_delegate.BeginInvoke (criteria, callback, state);
}
public FindResponse EndFind (IAsyncResult result)
{
return find_delegate.EndInvoke (result);
}
FindResponse Find (FindCriteria criteria)
{
var req = new MessageContractsApril2005.FindRequest () { Body = new FindCriteriaApril2005 (criteria) };
Channel.BeginFind (req, delegate (IAsyncResult result) {
Channel.EndFind (result);
}, null);
var timeout = InnerChannel.OperationTimeout < criteria.Duration ? InnerChannel.OperationTimeout : criteria.Duration;
if (!reply_find_handle.WaitOne (timeout))
throw new EndpointNotFoundException ("The discovery client could not receive Find operation response within the operation timeout.");
try {
var ir = find_completed ();
var ret = new FindResponse ();
foreach (var fr in ir.Body)
ret.Endpoints.Add (fr.ToEndpointDiscoveryMetadata ());
return ret;
} finally {
find_completed = null;
}
}
// Resolve
Func<ResolveCriteria,ResolveResponse> resolve_delegate;
Func<MessageContractsApril2005.ResolveResponse> resolve_completed;
ManualResetEvent reply_resolve_handle = new ManualResetEvent (false);
public IAsyncResult BeginResolve (ResolveCriteria criteria, AsyncCallback callback, object state)
{
if (resolve_delegate == null)
resolve_delegate = new Func<ResolveCriteria,ResolveResponse> (Resolve);
return resolve_delegate.BeginInvoke (criteria, callback, state);
}
public ResolveResponse EndResolve (IAsyncResult result)
{
return resolve_delegate.EndInvoke (result);
}
public ResolveResponse Resolve (ResolveCriteria criteria)
{
var req = new MessageContractsApril2005.ResolveRequest () { Body = new ResolveCriteriaApril2005 (criteria) };
Channel.BeginResolve (req, delegate (IAsyncResult result) {
Channel.EndResolve (result);
}, null);
var timeout = InnerChannel.OperationTimeout < criteria.Duration ? InnerChannel.OperationTimeout : criteria.Duration;
if (!reply_find_handle.WaitOne (timeout))
throw new TimeoutException ();
try {
var ir = resolve_completed ();
var metadata = ir.Body.ToEndpointDiscoveryMetadata ();
var sequence = ir.MessageSequence.ToDiscoveryMessageSequence ();
return new ResolveResponse (metadata, sequence);
} finally {
resolve_completed = null;
}
}
internal class DiscoveryTargetCallbackApril2005 : IDiscoveryTargetCallbackContractApril2005
{
public event Action<MessageContractsApril2005.FindResponse> ReplyFindCompleted;
public event Action<MessageContractsApril2005.ResolveResponse> ReplyResolveCompleted;
public void ReplyFind (MessageContractsApril2005.FindResponse message)
{
if (ReplyFindCompleted != null)
ReplyFindCompleted (message);
}
public void ReplyResolve (MessageContractsApril2005.ResolveResponse message)
{
if (ReplyResolveCompleted != null)
ReplyResolveCompleted (message);
}
}
}
}

View File

@ -0,0 +1,90 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2009,2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
namespace System.ServiceModel.Discovery.VersionApril2005
{
[XmlSchemaProvider ("GetSchema")]
public class EndpointDiscoveryMetadataApril2005 : IXmlSerializable
{
public static EndpointDiscoveryMetadataApril2005 FromEndpointDiscoveryMetadata (EndpointDiscoveryMetadata endpointDiscoveryMetadata)
{
return new EndpointDiscoveryMetadataApril2005 (endpointDiscoveryMetadata);
}
public static XmlQualifiedName GetSchema (XmlSchemaSet schemaSet)
{
EndpointAddress10.GetSchema (schemaSet);
schemaSet.Add (schema);
return new XmlQualifiedName ("ProbeMatchType", version.Namespace);
}
static readonly DiscoveryVersion version = DiscoveryVersion.WSDiscoveryApril2005;
static readonly XmlSchema schema = EndpointDiscoveryMetadata.BuildSchema (version);
// for deserialization use
EndpointDiscoveryMetadataApril2005 ()
{
}
internal EndpointDiscoveryMetadataApril2005 (EndpointDiscoveryMetadata source)
{
this.source = source;
}
EndpointDiscoveryMetadata source;
public XmlSchema GetSchema ()
{
return null;
}
public void ReadXml (XmlReader reader)
{
source = EndpointDiscoveryMetadata.ReadXml (reader, version);
}
public EndpointDiscoveryMetadata ToEndpointDiscoveryMetadata ()
{
if (source == null)
throw new InvalidOperationException ("Call ReadXml method first before calling this method");
return source;
}
public void WriteXml (XmlWriter writer)
{
source.WriteXml (writer, version);
}
}
}

View File

@ -0,0 +1,89 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2009,2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
namespace System.ServiceModel.Discovery.VersionApril2005
{
[XmlSchemaProvider ("GetSchema")]
public class FindCriteriaApril2005 : IXmlSerializable
{
public static FindCriteriaApril2005 FromFindCriteria (FindCriteria findCriteria)
{
return new FindCriteriaApril2005 (findCriteria);
}
static readonly DiscoveryVersion version = DiscoveryVersion.WSDiscoveryApril2005;
static XmlSchema schema = FindCriteria.BuildSchema (version);
public static XmlQualifiedName GetSchema (XmlSchemaSet schemaSet)
{
schemaSet.Add (schema);
return new XmlQualifiedName ("ProbeType", version.Namespace);
}
// for deserialization
FindCriteriaApril2005 ()
{
}
internal FindCriteriaApril2005 (FindCriteria source)
{
this.source = source;
}
FindCriteria source;
public XmlSchema GetSchema ()
{
return null;
}
public void ReadXml (XmlReader reader)
{
source = FindCriteria.ReadXml (reader, version);
}
public FindCriteria ToFindCriteria ()
{
if (source == null)
throw new InvalidOperationException ("Call ReadXml method before calling this method.");
return source;
}
public void WriteXml (XmlWriter writer)
{
source.WriteXml (writer, version);
}
}
}

View File

@ -0,0 +1,49 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.ServiceModel.Discovery;
namespace System.ServiceModel.Discovery.VersionApril2005
{
[ServiceContract (Name = "Client", Namespace = MessageContractsApril2005.NS)]
internal interface IAnnouncementContractApril2005
{
[OperationContract (Name = "Hello", Action = MessageContractsApril2005.HelloAction, IsOneWay = true, AsyncPattern = true)]
IAsyncResult BeginOnlineAnnouncement (MessageContractsApril2005.OnlineAnnouncement message, AsyncCallback callback, object state);
void EndOnlineAnnouncement (IAsyncResult result);
[OperationContract (Name = "Bye", Action = MessageContractsApril2005.ByeAction, IsOneWay = true, AsyncPattern = true)]
IAsyncResult BeginOfflineAnnouncement (MessageContractsApril2005.OfflineAnnouncement message, AsyncCallback callback, object state);
void EndOfflineAnnouncement (IAsyncResult result);
}
}

View File

@ -0,0 +1,49 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.ServiceModel.Discovery;
namespace System.ServiceModel.Discovery.VersionApril2005
{
[ServiceContract (Name = "DiscoveryProxy", Namespace = MessageContractsApril2005.NS)]
internal interface IDiscoveryProxyContractApril2005
{
[OperationContract (Name = "ProbeApril2005", Action = MessageContractsApril2005.ProbeAction, AsyncPattern = true, ReplyAction = MessageContractsApril2005.ProbeMatchAction)]
IAsyncResult BeginFind (MessageContractsApril2005.FindRequest message, AsyncCallback callback, object state);
MessageContractsApril2005.FindResponse EndFind (IAsyncResult result);
[OperationContract (Name = "ResolveApril2005", Action = MessageContractsApril2005.ResolveAction, AsyncPattern = true, ReplyAction = MessageContractsApril2005.ResolveMatchAction)]
IAsyncResult BeginResolve (MessageContractsApril2005.ResolveRequest message, AsyncCallback callback, object state);
MessageContractsApril2005.ResolveResponse EndResolve (IAsyncResult result);
}
}

View File

@ -0,0 +1,63 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.ServiceModel.Discovery;
namespace System.ServiceModel.Discovery.VersionApril2005
{
[ServiceContract (Name = "TargetService", Namespace = MessageContractsApril2005.NS, CallbackContract = typeof (IDiscoveryTargetCallbackContractApril2005))]
internal interface IDiscoveryTargetContractApril2005
{
[OperationContract (Name = "ProbeApril2005", Action = MessageContractsApril2005.ProbeAction, AsyncPattern = true, IsOneWay = true)]
IAsyncResult BeginFind (MessageContractsApril2005.FindRequest message, AsyncCallback callback, object state);
void EndFind (IAsyncResult result);
[OperationContract (Name = "ResolveApril2005", Action = MessageContractsApril2005.ResolveAction, AsyncPattern = true, IsOneWay = true)]
IAsyncResult BeginResolve (MessageContractsApril2005.ResolveRequest message, AsyncCallback callback, object state);
void EndResolve (IAsyncResult result);
[OperationContract (Name = "HelloApril2005", Action = MessageContractsApril2005.HelloAction, IsOneWay = true, AsyncPattern = true)]
IAsyncResult BeginOnlineAnnouncement (MessageContractsApril2005.OnlineAnnouncement message, AsyncCallback callback, object state);
void EndOnlineAnnouncement (IAsyncResult result);
}
internal interface IDiscoveryTargetCallbackContractApril2005
{
[OperationContract (Name = "ProbeMatchesApril2005", Action = MessageContractsApril2005.ProbeMatchAction, IsOneWay = true)]
void ReplyFind (MessageContractsApril2005.FindResponse message);
[OperationContract (Name = "ResolveMatchesApril2005", Action = MessageContractsApril2005.ResolveMatchAction, IsOneWay = true)]
void ReplyResolve (MessageContractsApril2005.ResolveResponse message);
}
}

View File

@ -0,0 +1,132 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.ServiceModel.Discovery;
using System.Xml;
namespace System.ServiceModel.Discovery.VersionApril2005
{
internal class MessageContractsApril2005
{
public const string NS = DiscoveryVersion.NamespaceApril2005;
public const string HelloAction = NS + "/Hello";
public const string ByeAction = NS + "/Bye";
public const string ProbeAction = NS + "/Probe";
public const string ProbeMatchAction = NS + "/ProbeMatches";
public const string ResolveAction = NS + "/Resolve";
public const string ResolveMatchAction = NS + "/ResolveMatches";
[MessageContract (IsWrapped = false)]
public class OnlineAnnouncement
{
public OnlineAnnouncement ()
{
Id = new UniqueId ();
}
[MessageHeader (Name = "AppSequence", Namespace = NS)]
public DiscoveryMessageSequenceApril2005 MessageSequence { get; set; }
[MessageHeader (Name = "MessageID", Namespace = "http://schemas.xmlsoap.org/ws/2004/08/addressing")]
public UniqueId Id { get; set; }
[MessageBodyMember (Name = "Hello", Namespace = NS)]
public EndpointDiscoveryMetadataApril2005 EndpointDiscoveryMetadata { get; set; }
}
[MessageContract (IsWrapped = false)]
public class OfflineAnnouncement
{
public OfflineAnnouncement ()
{
Id = new UniqueId ();
}
[MessageHeader (Name = "AppSequence", Namespace = NS)]
public DiscoveryMessageSequenceApril2005 MessageSequence { get; set; }
[MessageHeader (Name = "MessageID", Namespace = "http://schemas.xmlsoap.org/ws/2004/08/addressing")]
public UniqueId Id { get; set; }
[MessageBodyMember (Name = "Bye", Namespace = NS)]
public EndpointDiscoveryMetadataApril2005 EndpointDiscoveryMetadata { get; set; }
}
[MessageContract (IsWrapped = false)]
public class FindRequest
{
public FindRequest ()
{
Id = new UniqueId ();
}
[MessageHeader (Name = "MessageID", Namespace = "http://schemas.xmlsoap.org/ws/2004/08/addressing")]
public UniqueId Id { get; set; }
[MessageBodyMember (Name = "Probe", Namespace = NS)]
public FindCriteriaApril2005 Body { get; set; }
}
[MessageContract (IsWrapped = false)]
public class FindResponse
{
[MessageHeader (Name = "AppSequence", Namespace = NS)]
public DiscoveryMessageSequenceApril2005 MessageSequence { get; set; }
[MessageBodyMember (Name = "ProbeMatches", Namespace = NS)]
public FindResponseApril2005 Body { get; set; }
}
[CollectionDataContract (Name = "ProbeMatches", ItemName = "ProbeMatch", Namespace = NS)]
public class FindResponseApril2005 : List<EndpointDiscoveryMetadataApril2005>
{
}
[MessageContract (IsWrapped = false)]
public class ResolveRequest
{
public ResolveRequest ()
{
Id = new UniqueId ();
}
[MessageHeader (Name = "MessageID", Namespace = "http://schemas.xmlsoap.org/ws/2004/08/addressing")]
public UniqueId Id { get; set; }
[MessageBodyMember (Name = "Resolve", Namespace = NS)]
public ResolveCriteriaApril2005 Body { get; set; }
}
[MessageContract (IsWrapped = false)]
public class ResolveResponse
{
[MessageHeader (Name = "AppSequence", Namespace = NS)]
public DiscoveryMessageSequenceApril2005 MessageSequence { get; set; }
[MessageBodyMember (Name = "ResolveMatches", Namespace = NS)]
public EndpointDiscoveryMetadataApril2005 Body { get; set; }
}
}
}

View File

@ -0,0 +1,85 @@
//
// Author: Atsushi Enomoto <atsushi@ximian.com>
//
// Copyright (C) 2009,2010 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.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
namespace System.ServiceModel.Discovery.VersionApril2005
{
[XmlSchemaProvider ("GetSchema")]
public class ResolveCriteriaApril2005 : IXmlSerializable
{
public static ResolveCriteriaApril2005 FromResolveCriteria (ResolveCriteria resolveCriteria)
{
return new ResolveCriteriaApril2005 (resolveCriteria);
}
static readonly DiscoveryVersion version = DiscoveryVersion.WSDiscoveryApril2005;
static XmlSchema schema = FindCriteria.BuildSchema (version);
public static XmlQualifiedName GetSchema (XmlSchemaSet schemaSet)
{
EndpointAddress10.GetSchema (schemaSet);
schemaSet.Add (schema);
return new XmlQualifiedName ("ResolveType", version.Namespace);
}
internal ResolveCriteriaApril2005 (ResolveCriteria source)
{
this.source = source;
}
ResolveCriteria source;
public XmlSchema GetSchema ()
{
return null;
}
public void ReadXml (XmlReader reader)
{
source = ResolveCriteria.ReadXml (reader, version);
}
public ResolveCriteria ToResolveCriteria ()
{
if (source == null)
throw new InvalidOperationException ("Call ReadXml method first before calling this method");
return source;
}
public void WriteXml (XmlWriter writer)
{
source.WriteXml (writer, version);
}
}
}