merging
[urisagit/Stem.git] / TODO
CommitLineData
4536f655 1 Stem Development TODO List
2
3Feel free to tackle any of these tasks. Email uri@stemsystems.com if you
4want design/code ideas or to discuss any of these projects.
5
6Last edited Fri Jan 16 17:07:14 EST 2004
7
8Stem::Event::*
9
10 Add support for more event loops (Tk, Qt, tcl, WxWindows,
11 POE). See Stem::Event::EventPM for an example of how to wrap an
12 event loop in Stem.
13
14Stem::Msg, Stem::Route
15
16 enable tracing of delivered messages
17
18 basic source routing needs design work. new client hubs will
19 flood upstream who they are. master servers can respond
20 downstream which will create a fully aware tree networks.
21
22 add support for a forward. it takes a message, clones it and
23 changes the to address.
24
25 maybe move Stem::Route to Stem::Msg::Route. it is only used by
26 Stem::Msg and that better describes its name.
27
28Stem::Portal
29
30 finish and test Portal forking
31
32 maybe convert to use Class clone/piped support. not sure if this
33 is reasonable or worth it.
34
35Stem::Log
36
37 add support for single method ref to do all the filtering. it is
38 passed the log entry and is a stem::log::entry object. it can
39 call all the action methods. there is no need for the current
40 design of a list of key/values. it will be deprecated.
41
42 timestamp is set with a template (strftime like but numbers only).
43
44 add timer based filters. single shot cron entries to toggle
45 state are fine. but how do you set the state at startup? if it
46 is between start and end times, the filter should be
47 enabled. this needs design work.
48
49 define and add more actions
50
51 email
52 msg
53
54run_stem
55
56 write up run_stem man page in pod
57
58 write tech notes for run_stem
59
60Stem::Proc
61
62 needs much more testing
63
64 test pseudo tty
65
66Stem::File
67
68 (some of this is done. a good simple project to pick up)
69
70 design parent cell and how it spawns targeted file cells.
71
72 code file stem based transfer stuff.
73
74 add file compare options - size, timestamp, MD5
75
76 add single directory support.
77 filename filters
78
79 add dir tree copy support
80
81 add throttle support? don't want to slurp entire large file in
82 and clog the system. throttle with reply messages and/or timing
83
84 add support for ftp and scp
85
86Stem::Util
87
88 replace read_file/write_file with File::Slurp. might as well eat
89 my own dog food. this needs to be added to the required modules
90 list in Build.PL
91
92Stem::Expect
93
94 use proc or socket and use async IO
95
96 hook in Stem::Cell::Flow
97
98 expect handles timeouts from async IO. then it drives the state
99 machine with a timeout method. regular input is sent to the
100 state machine as data.
101
102 if no input matches but not timed out yet, we wait for more
103 input or the timeout.
104
105 do we need code callbacks? i think the higher level object
106 (protocol::ftp?) would want callbacks itself in some cases.
107
108Testing
109 need tests for higher level cells.
110
111 need load testing of various subsystems.
112
113 need cross platform testing.
114
115Documentation
116
117 full pods for all modules
118
119 accurate docs for all class fields. this can be autogenerated
120 from the $field_info lists. we could parse only that code out
121 easily and eval the string. the either edit the internal pod or
122 some other text file. it would generate a nicely formatted
123 description of all the class fields.
124
125Tracing
126
127 mark by name which message is currently being delivered
128
129 use the hub/cell/target in the 'to' address.
130
131 any newly dispatched messages get a from/origin of that to
132
133 just copy the to?
134
135 fix registry lookup by object to get cell/name and target
136
137 save current event cell name and target
138
139 create trace file to be written by events and message delivery
140 (or dispatch?)