Merge branch 'master' of https://git.code.sf.net/p/cdesktopenv/code
[oweals/cde.git] / cde / programs / ttsnoop / README
1 /* $XConsortium: README /main/2 1996/07/15 14:32:01 drk $ */
2 This is the new ttsnoop.  It currently gets built but not installed.
3 See "Code Changes" for hints as to what more would have to be done
4 to make it replace the current ttsnoop.
5
6 * CRT Request: new ttsnoop
7
8    * Requestor: Brian Holtz holtz@eng.sun.com
9
10    * Component: tooltalk
11
12    * CMVC
13
14      name compName sev prio abstract
15      ---- -------- --- ---- --------------------------------------------
16      5501 tooltalk 3   3    tttrace ^Z can hang session
17      6153 tooltalk 3   4    I18N: Bad layout of ttsnoop
18
19    * Synopsis
20
21       Replace TeleUse ttsnoop with CDE-integrated dtbuilder ttsnoop
22
23    * Justification
24
25       There are five major reasons to replace the TeleUse ttsnoop with
26       the dtbuilder ttsnoop:
27       - Integrated with CDE
28       - Smaller
29       - No need for localization
30       - Fixes ttsnoop bugs
31       - More features
32
33       * Unlike the current ttsnoop, the new one is integrated with CDE:
34          * Exposes TT CDE features: netfiles, CFI, tttk, tracing
35          * Uses CDE Help
36          * Generates TT_MSG action from any message
37          * Prints all installed TT_MSG actions
38          * Handles changes in font preference
39          * Uses Actions to open man pages and generated buffers
40          * Uses Motif file chooser for choosing files
41          * Uses CDE standard colors in icon
42          * Provides icons in all 3 standard CDE icon sizes
43
44       * The new ttsnoop is smaller:
45          * source:      17Kloc                  36Kloc
46          * object:      205K+32K+16K = 250K     370K+26K+33K = 430K
47          * msg dialog:  325Kpixel^2             520Kpixel^2
48          * pat dialog:  230Kpixel^2             455Kpixel^2
49
50       * No need for localization
51          The TeleUse ttsnoop has over 900 messages in it, mostly
52          consisting of editorial commentary about ToolTalk.  (Some of
53          the commentary is wrong or not in sync with the CDE changes
54          to ToolTalk.)  The justification for not translating these
55          messages is that ttsnoop is a programmer's tool, not an end
56          user's tool.
57
58          Except for its usage message, every string in the new ttsnoop
59          is composed solely of keywords from public CDE APIs.  The
60          editorial commentary is replaced by automatically bringing up
61          the relevant ToolTalk man pages (which are more likely to get
62          localized than the old ttsnoop's 900+ messages).
63
64       * Fixes ttsnoop bugs
65          If a user runs the command-line message tracing tool
66          (tttrace) and suspends it or pages its output, the result is
67          that within minutes the entire desktop locks up (defect
68          5501).  The existing ttsnoop is hard enough to use that
69          customers are more likely to run tttrace directly and risk
70          desktop freeze.  The new ttsnoop makes running tttrace by
71          hand unnecessary.
72
73          The new ttsnoop uses relative layout and so behaves correctly
74          for changes in geometry and font preference.
75
76          The new ttsnoop has a proper and complete man page, and
77          correctly places it in man1 (instead of man6).
78
79       * More features
80          The existing ttsnoop is missing all of these features of the
81          new ttsnoop:
82          * Messages
83             * Separate properties window per message
84             * Send on exit, Accept, Reject, Reply, Fail, Destroy
85             * Add message callbacks
86             * Messages printed in standard format via tt_message_print()
87             * Generate
88                * new message dialog containing cloned message
89                * C code (including callback for requests and offers)
90                * TT_MSG action
91                * ptype containing matching static pattern
92                * new pattern dialog containing matching dynamic pattern
93                * new message dialog containing Status notice
94          * Patterns
95             * Handler patterns (as well as observer patterns)
96             * Separate properties window per pattern
97             * Unregister, (re)register, destroy
98             * Add pattern callbacks
99          * Files
100             * Join, quit, get/set/unset default
101             * Call ttdt_file_*() APIs
102             * Call netfile APIs
103          * Session: join, quit, set default
104          * Ptype: declare, undeclare, set default, exists
105          * Types: load, reload, enumerate, decompile, dump TT_MSG actions
106          * Procids: open, close, suspend, resume
107          * libc menu: system(), chdir(), pause(), exit()
108          * Help
109             * Menu items open man1/tt* man pages
110             * On-item help opens man3/tt* man pages
111          * Dialogs for choosing sessions, procids, standard ops
112          * Comprehensive command line options
113             * to specify initial pattern
114             * to log snoop output
115
116    * Interface Changes
117
118       The ttsnoop GUI, CLI, and man page are completely new.  Note
119       that, except as noted under Documentation, there are no
120       programmatic or documentation dependencies on these interfaces
121       in the rest of CDE.
122       
123    * Code Changes
124
125       update: cdesrc/databases/CDE-TT.udb
126       update: cdesrc/databases/CDE-RUN.udb
127       update: cdesrc/databases/CDE-MAN.udb
128       update: cdesrc/databases/CDE-ICONS.udb
129       create: cdesrc/cde1/icons/DtTtsnp.t_m.bm
130       create: cdesrc/cde1/icons/DtTtsnp.t.pm
131       create: cdesrc/cde1/icons/DtTtsnp.t.bm
132       create: cdesrc/cde1/icons/DtTtsnp.m_m.bm
133       create: cdesrc/cde1/icons/DtTtsnp.m.pm
134       create: cdesrc/cde1/icons/DtTtsnp.m.bm
135       create: cdesrc/cde1/icons/DtTtsnp.l_m.bm
136       create: cdesrc/cde1/icons/DtTtsnp.l.bm
137       create: cdesrc/cde1/icons/DtTtsnp.l.pm
138       update: cdesrc/lib/tt/man/man6/Imakefile
139       update: cdesrc/lib/tt/man/man1/Imakefile
140       rename from: cdesrc/lib/tt/man/man6/ttsnoop.6xo
141                to: cdesrc/lib/tt/man/man1/ttsnoop.1xo
142       update: cdesrc/lib/tt/man/man6/ttsnoop.6xo
143       update: cdesrc/lib/tt/bin/Imakefile
144       create: cdesrc/lib/tt/bin/ttsnoop2/DtTt.h
145       create: cdesrc/lib/tt/bin/ttsnoop2/apiTracer.bil
146       create: cdesrc/lib/tt/bin/ttsnoop2/argChooser.bil
147       create: cdesrc/lib/tt/bin/ttsnoop2/callbackChooser.bil
148       create: cdesrc/lib/tt/bin/ttsnoop2/patternProps.bil
149       create: cdesrc/lib/tt/bin/ttsnoop2/sessionChooser.bil
150       create: cdesrc/lib/tt/bin/ttsnoop2/stringChooser.bil
151       create: cdesrc/lib/tt/bin/ttsnoop2/ttChooser.bil
152       create: cdesrc/lib/tt/bin/ttsnoop2/ttsnoop.C
153       create: cdesrc/lib/tt/bin/ttsnoop2/tt_c++.h
154       create: cdesrc/lib/tt/bin/ttsnoop2/ttsnoop.bil
155       create: cdesrc/lib/tt/bin/ttsnoop2/ttsnoop.bip
156       create: cdesrc/lib/tt/bin/ttsnoop2/fileChooser.bil
157       create: cdesrc/lib/tt/bin/ttsnoop2/messageProps.bil
158       create: cdesrc/lib/tt/bin/ttsnoop2/callbackChooser_stubs.C
159       create: cdesrc/lib/tt/bin/ttsnoop2/ttChooser_stubs.C
160       create: cdesrc/lib/tt/bin/ttsnoop2/externC.h
161       create: cdesrc/lib/tt/bin/ttsnoop2/DtTt.C
162       create: cdesrc/lib/tt/bin/ttsnoop2/Makefile.AIX
163       create: cdesrc/lib/tt/bin/ttsnoop2/patternProps_stubs.C
164       create: cdesrc/lib/tt/bin/ttsnoop2/tt_c++.C
165       create: cdesrc/lib/tt/bin/ttsnoop2/messageProps_stubs.C
166       create: cdesrc/lib/tt/bin/ttsnoop2/stringChooser_stubs.C
167       create: cdesrc/lib/tt/bin/ttsnoop2/ttsnoop_stubs.C
168       create: cdesrc/lib/tt/bin/ttsnoop2/fileChooser_stubs.C
169       create: cdesrc/lib/tt/bin/ttsnoop2/sessionChooser_stubs.C
170       create: cdesrc/lib/tt/bin/ttsnoop2/apiTracer_stubs.C
171       create: cdesrc/lib/tt/bin/ttsnoop2/closeBrace.h
172       create: cdesrc/lib/tt/bin/ttsnoop2/Makefile.SunOS
173       create: cdesrc/lib/tt/bin/ttsnoop2/argChooser_stubs.C
174       create: cdesrc/lib/tt/bin/ttsnoop2/Makefile.HP-UX
175       create: cdesrc/lib/tt/bin/ttsnoop2/Ttsnoop
176           
177    * Risk
178
179       No part of CDE depends on ttsnoop, so there is vanishingly small
180       runtime risk.
181
182       The overall CDE build depends on ttsnoop being able to build.
183       ttsnoop builds on SunOS, HP-UX, and AIX with no problems.  The
184       risk of breaking the build is thought to be small.
185
186    * Testing
187
188       ttsnoop has been built and manually exercised on AIX, HP-UX, and
189       SunOS.
190
191    * Performance
192
193       The new ttsnoop is much smaller than the old one, but that is
194       not very relevent since its primary purpose is for debugging.
195       
196    * Documentation
197
198       The man page has been completely rewritten, as has
199       LearningProducts/APIdesktop/TooltalkUser/ttsnoop.mif.
200
201    * Translation
202
203       I would be surprised if either ttsnoop.6 or ttsnoop.mif have
204       already been translated by anybody to any language (especially
205       English ;-).