2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Fri, 31 Jul 2009 09:27:47 +0000 (09:27 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Fri, 31 Jul 2009 09:27:47 +0000 (09:27 -0000)
* IPeerConnectorContract.cs : new file for [MC-PRCH].

* System.ServiceModel.dll.sources: add IPeerConnectorContract.cs.

svn path=/trunk/mcs/; revision=139158

mcs/class/System.ServiceModel/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel.PeerResolvers/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel.PeerResolvers/IPeerConnectorContract.cs [new file with mode: 0644]
mcs/class/System.ServiceModel/System.ServiceModel.dll.sources

index aad416e9df1b36ab16eaee5c9bdd555ea5416460..55982dface709836eb05f85abaec1ee8749f5626 100755 (executable)
@@ -1,3 +1,7 @@
+2009-07-31  Astushi Enomoto  <atsushi@ximian.com>
+
+       * System.ServiceModel.dll.sources: add IPeerConnectorContract.cs.
+
 2009-07-31  Astushi Enomoto  <atsushi@ximian.com>
 
        * System.ServiceModel_test.dll.sources: add ServiceEndpointTest.cs.
index 02cd6fa66472bb6c02df1d6a0bb32a6709948c1a..fefd47aac8f92f2656f14cbe515433323b403724 100644 (file)
@@ -1,3 +1,7 @@
+2009-07-31  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * IPeerConnectorContract.cs : new file for [MC-PRCH].
+
 2009-07-14  Atsushi Enomoto  <atsushi@ximian.com>
 
        * ServiceSettingsResponseInfo.cs
diff --git a/mcs/class/System.ServiceModel/System.ServiceModel.PeerResolvers/IPeerConnectorContract.cs b/mcs/class/System.ServiceModel/System.ServiceModel.PeerResolvers/IPeerConnectorContract.cs
new file mode 100644 (file)
index 0000000..89bc111
--- /dev/null
@@ -0,0 +1,231 @@
+using System;
+using System.Runtime.Serialization;
+using System.ServiceModel;
+using System.ServiceModel.Channels;
+using System.ServiceModel.PeerResolvers;
+using System.ServiceModel.Description;
+
+namespace System.ServiceModel.PeerResolvers
+{
+       internal class Consts
+       {
+               public const string Namespace = "http://schemas.microsoft.com/net/2006/05/peer/resolver";
+       }
+
+       [ServiceContract (Name = "IPeerConnectorContract", Namespace = Consts.Namespace, SessionMode = SessionMode.Allowed)]
+       internal interface IPeerConnectorContract
+       {
+               [OperationContract (IsOneWay = true)]
+               void Connect (ConnectInfo connect);
+
+               [OperationContract (IsOneWay = true)]
+               void Welcome (WelcomeInfo welcome);
+
+               [OperationContract (IsOneWay = true)]
+               void Refuse (RefuseInfo refuse);
+
+               [OperationContract (IsOneWay = true)]
+               void Disconnect (DisconnectInfo disconnect);
+
+               [OperationContract (IsOneWay = true)]
+               void LinkUtility (LinkUtilityInfo linkUtility);
+
+               [OperationContract (IsOneWay = true)]
+               void Ping ();
+
+               [OperationContract (IsOneWay = true)]
+               void SendMessage (Message msg);
+       }
+
+       // Common datatype
+
+       [DataContract (Name = "Referral", Namespace = Consts.Namespace)]
+       internal class Referral
+       {
+               [DataMember]
+               public ulong Id { get; set; }
+
+               [DataMember]
+               public PeerNodeAddress PeerNodeAddress { get; set; }
+       }
+
+       internal enum RefuseReason
+       {
+               DuplicateNeighbor,
+               DuplicateNodeId,
+               NodeBusy,
+       }
+
+       internal enum DisconnectReason
+       {
+               LeavingMesh,
+               NotUsefulNeighbor,
+               DuplicateNeighbor,
+               DuplicateNodeId,
+       }
+
+       // Connect
+
+       [DataContract (Name = "Connect", Namespace = Consts.Namespace)]
+       internal class ConnectInfoDC
+       {
+               [DataMember]
+               public PeerNodeAddress PeerNodeAddress { get; set; }
+               [DataMember]
+               public ulong NodeId { get; set; }
+       }
+
+       [MessageContract]
+       internal class ConnectInfo
+       {
+               public ConnectInfo ()
+               {
+                       dc = new ConnectInfoDC ();
+               }
+
+               [MessageBodyMember]
+               ConnectInfoDC dc;
+
+               public PeerNodeAddress PeerNodeAddress {
+                       get { return dc.PeerNodeAddress; }
+                       set { dc.PeerNodeAddress = value; }
+               }
+
+               public ulong NodeId {
+                       get { return dc.NodeId; }
+                       set { dc.NodeId = value; }
+               }
+       }
+
+       // Welcome
+
+       [DataContract (Name = "Welcome", Namespace = Consts.Namespace)]
+       internal class WelcomeInfoDC
+       {
+               [DataMember]
+               public ulong NodeId { get; set; }
+               [DataMember]
+               public Referral [] Referrals { get; set; }
+       }
+
+       [MessageContract]
+       internal class WelcomeInfo
+       {
+               public WelcomeInfo ()
+               {
+                       dc = new WelcomeInfoDC ();
+               }
+
+               [MessageBodyMember]
+               WelcomeInfoDC dc;
+
+               public ulong NodeId {
+                       get { return dc.NodeId; }
+                       set { dc.NodeId = value; }
+               }
+
+               public Referral [] Referrals {
+                       get { return dc.Referrals; }
+                       set { dc.Referrals = value; }
+               }
+       }
+
+       // Refuse
+
+       [DataContract (Name = "Refuse", Namespace = Consts.Namespace)]
+       internal class RefuseInfoDC
+       {
+               [DataMember]
+               public Referral [] Referrals { get; set; }
+               [DataMember]
+               public RefuseReason Reason { get; set; }
+       }
+
+       [MessageContract]
+       internal class RefuseInfo
+       {
+               public RefuseInfo ()
+               {
+                       dc = new RefuseInfoDC ();
+               }
+
+               [MessageBodyMember]
+               RefuseInfoDC dc;
+
+               public Referral [] Referrals {
+                       get { return dc.Referrals; }
+                       set { dc.Referrals = value; }
+               }
+
+               public RefuseReason Reason {
+                       get { return dc.Reason; }
+                       set { dc.Reason = value; }
+               }
+       }
+
+       // Disconnect
+
+       [DataContract (Name = "Disconnect", Namespace = Consts.Namespace)]
+       internal class DisconnectInfoDC
+       {
+               [DataMember]
+               public Referral [] Referrals { get; set; }
+               [DataMember]
+               public DisconnectReason Reason { get; set; }
+       }
+
+       [MessageContract]
+       internal class DisconnectInfo
+       {
+               public DisconnectInfo ()
+               {
+                       dc = new DisconnectInfoDC ();
+               }
+
+               [MessageBodyMember]
+               DisconnectInfoDC dc;
+
+               public Referral [] Referrals {
+                       get { return dc.Referrals; }
+                       set { dc.Referrals = value; }
+               }
+
+               public DisconnectReason Reason {
+                       get { return dc.Reason; }
+                       set { dc.Reason = value; }
+               }
+       }
+
+       // LinkUtilityInfo
+
+       [DataContract (Name = "LinkUtilityInfo", Namespace = Consts.Namespace)]
+       internal class LinkUtilityInfoDC
+       {
+               [DataMember]
+               public uint Total { get; set; }
+               [DataMember]
+               public uint Useful { get; set; }
+       }
+
+       [MessageContract]
+       internal class LinkUtilityInfo
+       {
+               public LinkUtilityInfo ()
+               {
+                       dc = new LinkUtilityInfoDC ();
+               }
+
+               [MessageBodyMember (Name = "LinkUtilityInfo")]
+               LinkUtilityInfoDC dc;
+
+               public uint Total {
+                       get { return dc.Total; }
+                       set { dc.Total = value; }
+               }
+
+               public uint Useful {
+                       get { return dc.Useful; }
+                       set { dc.Useful = value; }
+               }
+       }
+}
index 64fd275d298a99a3f3d7802d54d30e5acb37a691..dc3b2db28ecedc0fbe0c9ce32593a3e7799a4621 100755 (executable)
@@ -675,6 +675,7 @@ System.ServiceModel.MsmqIntegration/MsmqIntegrationSecurity.cs
 System.ServiceModel.MsmqIntegration/MsmqMessage.cs
 System.ServiceModel.PeerResolvers/CustomPeerResolverService.cs
 System.ServiceModel.PeerResolvers/ICustomPeerResolverContract.cs
+System.ServiceModel.PeerResolvers/IPeerConnectorContract.cs
 System.ServiceModel.PeerResolvers/IPeerResolverContract.cs
 System.ServiceModel.PeerResolvers/LocalPeerResolverService.cs
 System.ServiceModel.PeerResolvers/PeerCustomResolverSettings.cs