[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