Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / PeerServiceMessageContracts.cs / 1 / PeerServiceMessageContracts.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Collections.Generic; using System.ServiceModel; using System.Diagnostics; using System.Runtime.Serialization; using System.ServiceModel.Diagnostics; [MessageContract(IsWrapped = false)] class ConnectInfo { [DataContract(Name = "ConnectInfo", Namespace = PeerStrings.Namespace)] class ConnectInfoDC { [DataMember(Name = "NodeId")] public ulong nodeId; [DataMember(Name = "Address")] public PeerNodeAddress address; public ConnectInfoDC() {} public ConnectInfoDC(ulong nodeId, PeerNodeAddress address) { this.nodeId = nodeId; this.address = address; } } [MessageBodyMember(Name = "Connect", Namespace = PeerStrings.Namespace)] ConnectInfoDC body; public ConnectInfo() { this.body = new ConnectInfoDC(); } public ConnectInfo(ulong nodeId, PeerNodeAddress address) { this.body = new ConnectInfoDC(nodeId, address); } public PeerNodeAddress Address { get { return this.body.address; } } public ulong NodeId { get { return this.body.nodeId; } } public bool HasBody() { return body != null; } } [MessageContract(IsWrapped = false)] class DisconnectInfo { [DataContract(Name = "DisconnectInfo", Namespace = PeerStrings.Namespace)] class DisconnectInfoDC { [DataMember(Name = "Reason")] public DisconnectReason reason; [DataMember(Name = "Referrals")] public Referral [] referrals; public DisconnectInfoDC() {} public DisconnectInfoDC(DisconnectReason reason, Referral [] referrals) { this.reason = reason; this.referrals = referrals; } } [MessageBodyMember(Name = "Disconnect", Namespace = PeerStrings.Namespace)] DisconnectInfoDC body; public DisconnectInfo() { body = new DisconnectInfoDC(); } public DisconnectInfo(DisconnectReason reason, Referral[] referrals) { this.body = new DisconnectInfoDC(reason, referrals); } public DisconnectReason Reason { get { return this.body.reason; } } public IListReferrals { get { return this.body.referrals != null ? Array.AsReadOnly (this.body.referrals) : null; } } public bool HasBody() { return body != null; } } // Reasons for sending a Disconnect message enum DisconnectReason { LeavingMesh = PeerCloseReason.LeavingMesh, NotUsefulNeighbor = PeerCloseReason.NotUsefulNeighbor, DuplicateNeighbor = PeerCloseReason.DuplicateNeighbor, DuplicateNodeId = PeerCloseReason.DuplicateNodeId, NodeBusy = PeerCloseReason.NodeBusy, } // // Service contract used for neighbor-to-neighbor communication // Sending messages is asynchronous and processing incoming messages is synchronous. // Used for Service implementation // [ServiceContract(Name = PeerStrings.ServiceContractName, Namespace = PeerStrings.Namespace, SessionMode = SessionMode.Required, CallbackContract = typeof(IPeerServiceContract))] interface IPeerServiceContract { [OperationContract(IsOneWay = true, Action = PeerStrings.ConnectAction)] void Connect (ConnectInfo connectInfo); [OperationContract(IsOneWay = true, Action = PeerStrings.DisconnectAction)] void Disconnect (DisconnectInfo disconnectInfo); [OperationContract(IsOneWay = true, Action = PeerStrings.RefuseAction)] void Refuse(RefuseInfo refuseInfo); [OperationContract(IsOneWay = true, Action = PeerStrings.WelcomeAction)] void Welcome(WelcomeInfo welcomeInfo); [OperationContract(IsOneWay = true, Action = PeerStrings.FloodAction, AsyncPattern=true)] IAsyncResult BeginFloodMessage(Message floodedInfo, AsyncCallback callback, object state); void EndFloodMessage(IAsyncResult result); [OperationContract(IsOneWay = true, Action = PeerStrings.LinkUtilityAction)] void LinkUtility(UtilityInfo utilityInfo); [OperationContract( Action = TrustFeb2005Strings.RequestSecurityToken, ReplyAction = TrustFeb2005Strings.RequestSecurityTokenResponse)] Message ProcessRequestSecurityToken(Message message); [OperationContract(IsOneWay = true, Action = PeerStrings.PingAction)] void Ping(Message message); [OperationContract(IsOneWay = true, Action = Addressing10Strings.FaultAction)] void Fault(Message message); } [ServiceContract(Name = PeerStrings.ServiceContractName, Namespace = PeerStrings.Namespace, SessionMode = SessionMode.Required, CallbackContract = typeof(IPeerService))] interface IPeerProxy : IPeerServiceContract, IOutputChannel { } [ServiceContract(Name = PeerStrings.ServiceContractName, Namespace = PeerStrings.Namespace, SessionMode = SessionMode.Required, CallbackContract = typeof(IPeerProxy))] interface IPeerService : IPeerServiceContract { } static class PeerConnectorHelper { public static bool IsDefined(DisconnectReason value) { return ((value == DisconnectReason.LeavingMesh) || (value == DisconnectReason.NotUsefulNeighbor) || (value == DisconnectReason.DuplicateNeighbor) || (value == DisconnectReason.DuplicateNodeId) || (value == DisconnectReason.NodeBusy)); } public static bool IsDefined(RefuseReason value) { return ((value == RefuseReason.DuplicateNodeId) || (value == RefuseReason.DuplicateNeighbor) || (value == RefuseReason.NodeBusy)); } } [DataContract(Name = "Referral", Namespace= PeerStrings.Namespace)] class Referral { [DataMember(Name = "NodeId")] ulong nodeId; // Referral NodeId [DataMember(Name = "Address")] PeerNodeAddress address; // Referral address public Referral(ulong nodeId, PeerNodeAddress address) { this.nodeId = nodeId; this.address = address; } public PeerNodeAddress Address { get { return this.address; } set { this.address = value; } } public ulong NodeId { get { return this.nodeId; } set { this.nodeId = value; } } } [MessageContract(IsWrapped = false)] class RefuseInfo { [DataContract(Name = "RefuseInfo", Namespace = PeerStrings.Namespace)] class RefuseInfoDC { [DataMember(Name = "Reason")] public RefuseReason reason; [DataMember(Name = "Referrals")] public Referral[] referrals; public RefuseInfoDC() {} public RefuseInfoDC(RefuseReason reason, Referral[] referrals) { this.reason = reason; this.referrals = referrals; } } public RefuseInfo() { this.body = new RefuseInfoDC(); } public RefuseInfo(RefuseReason reason, Referral[] referrals) { this.body = new RefuseInfoDC(reason, referrals); } [MessageBodyMember(Name = "Refuse", Namespace = PeerStrings.Namespace)] RefuseInfoDC body; public RefuseReason Reason { get { return this.body.reason; } } public IList Referrals { get { return this.body.referrals != null ? Array.AsReadOnly (this.body.referrals) : null; } } public bool HasBody() { return body != null; } } // Reasons for sending a Refuse message enum RefuseReason { DuplicateNeighbor = PeerCloseReason.DuplicateNeighbor, DuplicateNodeId = PeerCloseReason.DuplicateNodeId, NodeBusy = PeerCloseReason.NodeBusy, } [MessageContract(IsWrapped = false)] class UtilityInfo { [DataContract(Name = "LinkUtilityInfo", Namespace = PeerStrings.Namespace)] class UtilityInfoDC { [DataMember(Name = "Useful")] public uint useful; [DataMember(Name = "Total")] public uint total; public UtilityInfoDC() {} public UtilityInfoDC(uint useful, uint total) { this.useful = useful; this.total = total; } } public UtilityInfo() { this.body = new UtilityInfoDC(); } public UtilityInfo(uint useful, uint total) { this.body = new UtilityInfoDC(useful, total); } [MessageBodyMember(Name = "LinkUtility", Namespace = PeerStrings.Namespace)] UtilityInfoDC body; public uint Useful { get { return body.useful; } } public uint Total { get { return body.total; } } public bool HasBody() { return body != null; } } [MessageContract(IsWrapped = false)] class WelcomeInfo { [DataContract(Name = "WelcomeInfo", Namespace = PeerStrings.Namespace)] class WelcomeInfoDC { [DataMember(Name = "NodeId")] public ulong nodeId; [DataMember(Name = "Referrals")] public Referral[] referrals; public WelcomeInfoDC() {} public WelcomeInfoDC(ulong nodeId, Referral[] referrals) { this.nodeId = nodeId; this.referrals = referrals; } } public WelcomeInfo() { this.body = new WelcomeInfoDC(); } public WelcomeInfo(ulong nodeId, Referral[] referrals) { this.body = new WelcomeInfoDC(nodeId, referrals); } [MessageBodyMember(Name = "Welcome", Namespace = PeerStrings.Namespace)] WelcomeInfoDC body; public ulong NodeId { get { return this.body.nodeId; } } public IList Referrals { get { return this.body.referrals != null ? Array.AsReadOnly (this.body.referrals) : null; } } public bool HasBody() { return body != null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeTypeDeclaration.cs
- Descriptor.cs
- WebPartUtil.cs
- ControlTemplate.cs
- XmlAutoDetectWriter.cs
- DataGridViewRowPrePaintEventArgs.cs
- DataGridViewSelectedCellCollection.cs
- FacetEnabledSchemaElement.cs
- DistinctQueryOperator.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- MimeFormImporter.cs
- TextParagraphCache.cs
- TextBox.cs
- ping.cs
- TrackingParameters.cs
- BoundColumn.cs
- MenuItemBindingCollection.cs
- TTSVoice.cs
- ListControlConvertEventArgs.cs
- BufferModesCollection.cs
- FtpWebRequest.cs
- TextOnlyOutput.cs
- ClipboardData.cs
- HtmlElement.cs
- HttpCookie.cs
- ObjectDataSourceView.cs
- SqlCacheDependencySection.cs
- AsnEncodedData.cs
- NamespaceDecl.cs
- Calendar.cs
- TypeUnloadedException.cs
- EventLogPermission.cs
- XmlNodeChangedEventManager.cs
- QEncodedStream.cs
- SmiContextFactory.cs
- Types.cs
- DataGridViewCellMouseEventArgs.cs
- WebControlAdapter.cs
- Object.cs
- GeometryConverter.cs
- SingleAnimation.cs
- RemotingException.cs
- PersonalizationEntry.cs
- MultiplexingFormatMapping.cs
- ValidationError.cs
- SchemaImporter.cs
- SafePointer.cs
- HttpProtocolImporter.cs
- Pens.cs
- ShaperBuffers.cs
- SingleResultAttribute.cs
- HtmlAnchor.cs
- ProfilePropertySettings.cs
- HandleCollector.cs
- BypassElement.cs
- SqlDataSourceConfigureSelectPanel.cs
- Certificate.cs
- FunctionQuery.cs
- SafeHandle.cs
- GraphicsContext.cs
- HtmlInputImage.cs
- SlipBehavior.cs
- TextEndOfLine.cs
- CqlWriter.cs
- ConsoleTraceListener.cs
- CompositeDispatchFormatter.cs
- Wizard.cs
- ValidateNames.cs
- ScrollEventArgs.cs
- AppDomainEvidenceFactory.cs
- IndexOutOfRangeException.cs
- DataGridTableStyleMappingNameEditor.cs
- Monitor.cs
- ChtmlTextWriter.cs
- TypeDefinition.cs
- XmlSchemaSimpleContentExtension.cs
- WriteStateInfoBase.cs
- PersonalizationProviderCollection.cs
- D3DImage.cs
- TextSelectionProcessor.cs
- _ConnectionGroup.cs
- XpsFixedPageReaderWriter.cs
- ServiceEndpointElement.cs
- DataColumnMappingCollection.cs
- SoapExtensionTypeElement.cs
- XamlVector3DCollectionSerializer.cs
- ToolTip.cs
- XamlToRtfWriter.cs
- TextSyndicationContent.cs
- DefaultHttpHandler.cs
- Quad.cs
- ColorMatrix.cs
- DateTimeConstantAttribute.cs
- MarginCollapsingState.cs
- SingleAnimation.cs
- TaskFormBase.cs
- ReaderWriterLock.cs
- ListParagraph.cs
- CodeExpressionCollection.cs
- RangeBase.cs