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
- LocalValueEnumerator.cs
- HuffmanTree.cs
- RelationalExpressions.cs
- shaperfactoryquerycacheentry.cs
- ProfilePropertySettings.cs
- Ipv6Element.cs
- ToolStripItem.cs
- CompositeKey.cs
- LongValidatorAttribute.cs
- ServicePointManagerElement.cs
- CharacterBufferReference.cs
- BasicCellRelation.cs
- TableRowCollection.cs
- ConfigXmlAttribute.cs
- Exception.cs
- Expression.cs
- SelectionUIService.cs
- EncoderReplacementFallback.cs
- MimeWriter.cs
- ContentElement.cs
- FormViewCommandEventArgs.cs
- SystemGatewayIPAddressInformation.cs
- BaseProcessor.cs
- ExpressionBuilder.cs
- StorageInfo.cs
- TreeNode.cs
- Dynamic.cs
- DmlSqlGenerator.cs
- LineUtil.cs
- InkCollectionBehavior.cs
- XmlElementCollection.cs
- FunctionImportElement.cs
- VectorKeyFrameCollection.cs
- TwoPhaseCommitProxy.cs
- Zone.cs
- SecurityException.cs
- ReverseInheritProperty.cs
- StyleHelper.cs
- OleDbError.cs
- XmlSubtreeReader.cs
- KnownColorTable.cs
- InfoCardMetadataExchangeClient.cs
- EventLogEntryCollection.cs
- OAVariantLib.cs
- SqlGenericUtil.cs
- ViewDesigner.cs
- LinearGradientBrush.cs
- ToolStripManager.cs
- GACMembershipCondition.cs
- ProxyWebPartConnectionCollection.cs
- SyndicationDeserializer.cs
- PasswordTextContainer.cs
- DataRow.cs
- DescendantQuery.cs
- OracleConnectionFactory.cs
- Sequence.cs
- PaintValueEventArgs.cs
- PermissionListSet.cs
- TextStore.cs
- DocumentViewerConstants.cs
- UnsafeNativeMethodsTablet.cs
- TextRangeBase.cs
- ConsumerConnectionPoint.cs
- CodeStatementCollection.cs
- RelationshipWrapper.cs
- XmlReader.cs
- TextChange.cs
- ToolStripContentPanelDesigner.cs
- x509utils.cs
- WebPartDescriptionCollection.cs
- ConfigXmlDocument.cs
- BamlBinaryWriter.cs
- _ChunkParse.cs
- EdmComplexPropertyAttribute.cs
- DbProviderSpecificTypePropertyAttribute.cs
- VirtualPathProvider.cs
- CodeGenerator.cs
- SqlLiftIndependentRowExpressions.cs
- InitializationEventAttribute.cs
- ComplusTypeValidator.cs
- WinInetCache.cs
- PersonalizationProviderHelper.cs
- SecurityElement.cs
- SocketPermission.cs
- LongMinMaxAggregationOperator.cs
- TrackingLocationCollection.cs
- ComponentResourceKey.cs
- DiagnosticTrace.cs
- HttpHeaderCollection.cs
- XmlDataDocument.cs
- GraphicsPathIterator.cs
- PathSegment.cs
- GCHandleCookieTable.cs
- ExceptionCollection.cs
- LookupBindingPropertiesAttribute.cs
- GreaterThan.cs
- BindingCollection.cs
- CatalogZone.cs
- AdapterUtil.cs
- Line.cs