[Gd-chatter] r11122 - in trunk/libraries: layer registry/generic tcp

hannes at gwydiondylan.org hannes at gwydiondylan.org
Fri Jan 5 23:28:26 CET 2007


Author: hannes
Date: Fri Jan  5 23:28:24 2007
New Revision: 11122

Added:
   trunk/libraries/registry/generic/tcp-state-machine
      - copied unchanged from r11120, trunk/libraries/registry/generic/tcp
Removed:
   trunk/libraries/registry/generic/tcp
Modified:
   trunk/libraries/layer/library.dylan
   trunk/libraries/layer/module.dylan
   trunk/libraries/tcp/library.dylan
   trunk/libraries/tcp/module.dylan
   trunk/libraries/tcp/tcp.dylan
   trunk/libraries/tcp/tcp.hdp
Log:
Bug: 7299
*rename tcp to tcp-state-machine (it is much clearer, also,
  there just appeared the tcp module provided by protocols library)
*cleanup tcp-state-machine code (more line breaks)


Modified: trunk/libraries/layer/library.dylan
==============================================================================
--- trunk/libraries/layer/library.dylan	(original)
+++ trunk/libraries/layer/library.dylan	Fri Jan  5 23:28:24 2007
@@ -12,7 +12,7 @@
   use interfaces;
   use vector-table;
   use system, import: { date };
-  use tcp;
+  use tcp-state-machine;
   use protocols;
 
   // Add any more module exports here.

Modified: trunk/libraries/layer/module.dylan
==============================================================================
--- trunk/libraries/layer/module.dylan	(original)
+++ trunk/libraries/layer/module.dylan	Fri Jan  5 23:28:24 2007
@@ -16,10 +16,11 @@
   use vector-table;
   use byte-vector;
   use date, import: {<date>, current-date };
-  use tcp;
+  use tcp-state-machine;
   use simple-random;
   use streams;
   use ipv4;
+  use tcp;
   use ethernet;
   use dns, exclude: { ipv4-address };
   use cidr;

Modified: trunk/libraries/tcp/library.dylan
==============================================================================
--- trunk/libraries/tcp/library.dylan	(original)
+++ trunk/libraries/tcp/library.dylan	Fri Jan  5 23:28:24 2007
@@ -3,9 +3,9 @@
 Author:    Andreas Bogk, Hannes Mehnert
 Copyright: (C) 2006,  All rights reserved.
 
-define library tcp
+define library tcp-state-machine
   use common-dylan;
   use io;
 
-  export tcp;
-end library tcp;
+  export tcp-state-machine;
+end library tcp-state-machine;

Modified: trunk/libraries/tcp/module.dylan
==============================================================================
--- trunk/libraries/tcp/module.dylan	(original)
+++ trunk/libraries/tcp/module.dylan	Fri Jan  5 23:28:24 2007
@@ -3,7 +3,7 @@
 Author:    Andreas Bogk, Hannes Mehnert
 Copyright: (C) 2006,  All rights reserved.
 
-define module tcp
+define module tcp-state-machine
   use common-dylan, exclude: { close };
   use threads;
   use format-out;
@@ -19,4 +19,4 @@
 
   export <tcp-events>, state-transition, process-event;
 
-end module tcp;
+end module tcp-state-machine;

Modified: trunk/libraries/tcp/tcp.dylan
==============================================================================
--- trunk/libraries/tcp/tcp.dylan	(original)
+++ trunk/libraries/tcp/tcp.dylan	Fri Jan  5 23:28:24 2007
@@ -1,4 +1,4 @@
-Module:    tcp
+Module:    tcp-state-machine
 Synopsis:  A brief description of the project.
 Author:    Andreas Bogk, Hannes Mehnert
 Copyright: (C) 2006,  All rights reserved.
@@ -16,9 +16,11 @@
  =>
   { define class ?name (?superclass) ?slots end;
     define variable "*" ## ?name ## "-instance*" :: false-or(?name) = #f;
-    define method make(class == ?name, #next next-method, #rest rest, #key, #all-keys)
+    define method make (class == ?name,
+                        #next next-method, #rest rest, #key, #all-keys)
      => (instance :: ?name);
-      "*" ## ?name ## "-instance*" | ("*" ## ?name ## "-instance*" := next-method())
+      "*" ## ?name ## "-instance*"
+        | ("*" ## ?name ## "-instance*" := next-method())
     end;
   }
 end;
@@ -56,100 +58,148 @@
 define singleton-class <last-ack> (<tcp-state>)
 end;
 
-define constant <tcp-events> = one-of(#"passive-open", #"active-open", #"close", #"syn-received", #"syn-ack-received",
-                                      #"rst-received", #"fin-received", #"ack-received", #"fin-ack-received",
-                                      #"2msl-timeout", #"last-ack-received");
+define constant <tcp-events>
+  = one-of(#"passive-open", #"active-open", #"close", #"syn-received",
+           #"syn-ack-received", #"rst-received", #"fin-received",
+           #"ack-received", #"fin-ack-received", #"2msl-timeout",
+           #"last-ack-received");
 
-define generic next-state (state :: <tcp-state>, event :: <tcp-events>) => (res :: <tcp-state>);
+define generic next-state (state :: <tcp-state>, event :: <tcp-events>)
+ => (res :: <tcp-state>);
 
-define method next-state (state :: <tcp-state>, event :: <tcp-events>) => (res :: <tcp-state>)
+define method next-state (state :: <tcp-state>, event :: <tcp-events>)
+ => (res :: <tcp-state>)
   state
 end;
 
-define method next-state (state :: <tcp-state>, event == #"rst-received") => (res :: <tcp-state>)
+define method next-state (state :: <tcp-state>,
+                          event == #"rst-received")
+ => (res :: <tcp-state>)
   make(<closed>)
 end;
 
-define method next-state (state :: <closed>, event == #"active-open") => (res :: <tcp-state>)
+define method next-state (state :: <closed>,
+                          event == #"active-open")
+ => (res :: <tcp-state>)
   make(<syn-sent>)  
 end;
-define method next-state (state :: <closed>, event == #"passive-open") => (new-state :: <tcp-state>);
+define method next-state (state :: <closed>,
+                          event == #"passive-open")
+ => (new-state :: <tcp-state>);
   make(<listen>)
 end;
 
-define method next-state (state :: <listen>, event == #"syn-received") => (new-state :: <tcp-state>);
+define method next-state (state :: <listen>,
+                          event == #"syn-received")
+ => (new-state :: <tcp-state>);
   make(<syn-received>)
 end;
 
-define method next-state (state :: <syn-sent>, event == #"close") => (new-state :: <tcp-state>);
+define method next-state (state :: <syn-sent>,
+                          event == #"close")
+ => (new-state :: <tcp-state>);
   make(<closed>)
 end;
 
-define method next-state (state :: <syn-sent>, event == #"syn-received") => (new-state :: <tcp-state>);
+define method next-state (state :: <syn-sent>,
+                          event == #"syn-received")
+ => (new-state :: <tcp-state>);
   make(<syn-received>)
 end;
 
-define method next-state (state :: <syn-sent>, event == #"syn-ack-received") => (new-state :: <tcp-state>);
+define method next-state (state :: <syn-sent>,
+                          event == #"syn-ack-received")
+ => (new-state :: <tcp-state>);
   make(<established>)
 end;
 
-define method next-state (old-state :: <syn-received>, event == #"rst-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <syn-received>,
+                          event == #"rst-received")
+ => (new-state :: <tcp-state>);
   make(<listen>)
 end;
 
-define method next-state (old-state :: <syn-received>, event == #"last-ack-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <syn-received>,
+                          event == #"last-ack-received")
+ => (new-state :: <tcp-state>);
   make(<established>)
 end;
 
-define method next-state (old-state :: <syn-received>, event == #"close") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <syn-received>,
+                          event == #"close")
+ => (new-state :: <tcp-state>);
   make(<fin-wait1>)
 end;
 
-define method next-state (old-state :: <established>, event == #"close") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <established>,
+                          event == #"close")
+ => (new-state :: <tcp-state>);
   make(<fin-wait1>)
 end;
 
-define method next-state (old-state :: <established>, event == #"fin-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <established>,
+                          event == #"fin-received")
+ => (new-state :: <tcp-state>);
   make(<close-wait>)
 end;
 
-define method next-state (old-state :: <established>, event == #"fin-ack-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <established>,
+                          event == #"fin-ack-received")
+ => (new-state :: <tcp-state>);
   make(<close-wait>)
 end;
 
-define method next-state (old-state :: <close-wait>, event == #"close") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <close-wait>,
+                          event == #"close")
+ => (new-state :: <tcp-state>);
   make(<last-ack>)
 end;
 
-define method next-state (old-state :: <last-ack>, event == #"last-ack-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <last-ack>,
+                          event == #"last-ack-received")
+ => (new-state :: <tcp-state>);
   make(<closed>)
 end;
 
-define method next-state (old-state :: <fin-wait1>, event == #"fin-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <fin-wait1>,
+                          event == #"fin-received")
+ => (new-state :: <tcp-state>);
   make(<closing>)
 end;
 
-define method next-state (old-state :: <fin-wait1>, event == #"last-ack-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <fin-wait1>,
+                          event == #"last-ack-received")
+ => (new-state :: <tcp-state>);
   make(<fin-wait2>)
 end;
 
-define method next-state (old-state :: <fin-wait1>, event == #"fin-ack-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <fin-wait1>,
+                          event == #"fin-ack-received")
+ => (new-state :: <tcp-state>);
   make(<time-wait>)
 end;
 
-define method next-state (old-state :: <fin-wait2>, event == #"fin-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <fin-wait2>,
+                          event == #"fin-received")
+ => (new-state :: <tcp-state>);
   make(<time-wait>)
 end;
 
-define method next-state (old-state :: <fin-wait2>, event == #"fin-ack-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <fin-wait2>,
+                          event == #"fin-ack-received")
+ => (new-state :: <tcp-state>);
   make(<time-wait>)
 end;
 
-define method next-state (old-state :: <closing>, event == #"last-ack-received") => (new-state :: <tcp-state>);
+define method next-state (old-state :: <closing>,
+                          event == #"last-ack-received")
+ => (new-state :: <tcp-state>);
   make(<time-wait>)
 end;
 
-define method next-state (state :: <time-wait>, event == #"2msl-timeout") => (new-state :: <tcp-state>)
+define method next-state (state :: <time-wait>,
+                          event == #"2msl-timeout")
+ => (new-state :: <tcp-state>)
   make(<closed>)
 end;
 
@@ -161,9 +211,13 @@
   state-transition(dingens, old-state, new-state);
 end;
 
-define open generic state-transition (dingens :: <tcp-dingens>, old-state :: <tcp-state>, new-state :: <tcp-state>) => ();
-
-define method state-transition (dingens :: <tcp-dingens>, old-state :: <tcp-state>, new-state :: <tcp-state>) => ()
+define open generic state-transition (dingens :: <tcp-dingens>,
+                                      old-state :: <tcp-state>,
+                                      new-state :: <tcp-state>) => ();
+
+define method state-transition (dingens :: <tcp-dingens>,
+                                old-state :: <tcp-state>,
+                                new-state :: <tcp-state>) => ()
   ignore(dingens, old-state, new-state)
 end;  
 

Modified: trunk/libraries/tcp/tcp.hdp
==============================================================================
--- trunk/libraries/tcp/tcp.hdp	(original)
+++ trunk/libraries/tcp/tcp.hdp	Fri Jan  5 23:28:24 2007
@@ -1,7 +1,7 @@
 Format-Version:   2
-Library:          tcp
+Library:          tcp-state-machine
 Synopsis:         A brief description of the project.
-Author:           Andreas Bogk
+Author:           Andreas Bogk, Hannes Mehnert
 Copyright:        (C) 2006,  All rights reserved.
 Major-Version:    1
 Minor-Version:    0



More information about the chatter mailing list