public ContractDescription GetDiscoveryContract(ServiceDiscoveryMode discoveryMode) { if (discoveryMode == ServiceDiscoveryMode.Adhoc) { if (this.adhocDiscoveryContract == null) { lock (this.contractLock) { if (this.adhocDiscoveryContract == null) { this.adhocDiscoveryContract = DiscoveryUtility.GetContract(typeof(IDiscoveryContractAdhoc11)); } } } return(this.adhocDiscoveryContract); } else if (discoveryMode == ServiceDiscoveryMode.Managed) { if (this.managedDiscoveryContract == null) { lock (this.contractLock) { if (this.managedDiscoveryContract == null) { this.managedDiscoveryContract = DiscoveryUtility.GetContract(typeof(IDiscoveryContractManaged11)); } } } return(this.managedDiscoveryContract); } else { throw FxTrace.Exception.AsError(new ArgumentException(SR.DiscoveryIncorrectMode(discoveryMode))); } }
public IAsyncResult BeginResolveMatchOperation(ResolveMatchesMessageApril2005 response, AsyncCallback callback, object state) { Fx.Assert(response != null, "The response message cannot be null."); if ((response.ResolveMatches != null) && (response.ResolveMatches.ResolveMatch != null)) { this.responseReceiver.ResolveMatchOperation( OperationContext.Current.IncomingMessageHeaders.RelatesTo, DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence), response.ResolveMatches.ResolveMatch.ToEndpointDiscoveryMetadata()); } return(new CompletedAsyncResult(callback, state)); }
public ContractDescription GetAnnouncementContract() { if (this.announcementContract == null) { lock (this.contractLock) { if (this.announcementContract == null) { this.announcementContract = DiscoveryUtility.GetContract(typeof(IAnnouncementContract11)); } } } return(this.announcementContract); }
public void EndResolveOperation(IAsyncResult result) { ResolveMatchesMessageCD1 response = base.Channel.EndResolveOperation(result); AsyncOperationContext context = (AsyncOperationContext)result.AsyncState; if ((response != null) && (response.ResolveMatches != null) && (response.ResolveMatches.ResolveMatch != null)) { this.responseReceiver.ResolveMatchOperation( context.OperationId, DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence), response.ResolveMatches.ResolveMatch.ToEndpointDiscoveryMetadata()); } else { this.responseReceiver.PostResolveCompletedAndRemove(context.OperationId, false, null); } }
public void EndProbeOperation(IAsyncResult result) { ProbeMatchesMessage11 response = base.Channel.EndProbeOperation(result); AsyncOperationContext context = (AsyncOperationContext)result.AsyncState; if ((response != null) && (response.ProbeMatches != null)) { this.responseReceiver.ProbeMatchOperation( context.OperationId, DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence), DiscoveryUtility.ToEndpointDiscoveryMetadataCollection(response.ProbeMatches), true); } else { this.responseReceiver.PostFindCompletedAndRemove(context.OperationId, false, null); } }
public void ResolveOperation(ResolveCriteria resolveCriteria) { ResolveMessageCD1 request = new ResolveMessageCD1(); request.Resolve = ResolveCriteriaCD1.FromResolveCriteria(resolveCriteria); ResolveMatchesMessageCD1 response = base.Channel.ResolveOperation(request); if ((response != null) && (response.ResolveMatches != null) && (response.ResolveMatches.ResolveMatch != null)) { this.responseReceiver.ResolveMatchOperation( OperationContext.Current.IncomingMessageHeaders.RelatesTo, DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence), response.ResolveMatches.ResolveMatch.ToEndpointDiscoveryMetadata()); } else { this.responseReceiver.PostResolveCompletedAndRemove(OperationContext.Current.IncomingMessageHeaders.RelatesTo, false, null); } }
public void ProbeOperation(FindCriteria findCriteria) { ProbeMessageCD1 request = new ProbeMessageCD1(); request.Probe = FindCriteriaCD1.FromFindCriteria(findCriteria); ProbeMatchesMessageCD1 response = base.Channel.ProbeOperation(request); if ((response != null) && (response.ProbeMatches != null)) { this.responseReceiver.ProbeMatchOperation( OperationContext.Current.IncomingMessageHeaders.RelatesTo, DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence), DiscoveryUtility.ToEndpointDiscoveryMetadataCollection(response.ProbeMatches), true); } else { this.responseReceiver.PostFindCompletedAndRemove(OperationContext.Current.IncomingMessageHeaders.RelatesTo, false, null); } }
public IAsyncResult BeginProbeMatchOperation(ProbeMatchesMessageCD1 response, AsyncCallback callback, object state) { Fx.Assert(response != null, "The response message cannot be null."); if ((response.MessageSequence != null) && (response.ProbeMatches != null)) { this.responseReceiver.ProbeMatchOperation( OperationContext.Current.IncomingMessageHeaders.RelatesTo, response.MessageSequence.ToDiscoveryMessageSequence(), DiscoveryUtility.ToEndpointDiscoveryMetadataCollection(response.ProbeMatches), false); } else { if (response.MessageSequence == null && TD.DiscoveryMessageWithNullMessageSequenceIsEnabled()) { TD.DiscoveryMessageWithNullMessageSequence( ProtocolStrings.TracingStrings.ProbeMatches, OperationContext.Current.IncomingMessageHeaders.MessageId.ToString()); } } return(new CompletedAsyncResult(callback, state)); }
protected override DiscoveryMessageSequence GetMessageSequence(ByeMessageCD1 message) { return(DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(message.MessageSequence)); }
protected override DiscoveryMessageSequence GetMessageSequence(HelloMessageApril2005 message) { return(DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(message.MessageSequence)); }