/* $XConsortium: README /main/2 1996/07/15 14:32:01 drk $ */
This is the new ttsnoop. It currently gets built but not installed.
See "Code Changes" for hints as to what more would have to be done
to make it replace the current ttsnoop.
* CRT Request: new ttsnoop
* Requestor: Brian Holtz holtz@eng.sun.com
* Component: tooltalk
* CMVC
name compName sev prio abstract
---- -------- --- ---- --------------------------------------------
5501 tooltalk 3 3 tttrace ^Z can hang session
6153 tooltalk 3 4 I18N: Bad layout of ttsnoop
* Synopsis
Replace TeleUse ttsnoop with CDE-integrated dtbuilder ttsnoop
* Justification
There are five major reasons to replace the TeleUse ttsnoop with
the dtbuilder ttsnoop:
- Integrated with CDE
- Smaller
- No need for localization
- Fixes ttsnoop bugs
- More features
* Unlike the current ttsnoop, the new one is integrated with CDE:
* Exposes TT CDE features: netfiles, CFI, tttk, tracing
* Uses CDE Help
* Generates TT_MSG action from any message
* Prints all installed TT_MSG actions
* Handles changes in font preference
* Uses Actions to open man pages and generated buffers
* Uses Motif file chooser for choosing files
* Uses CDE standard colors in icon
* Provides icons in all 3 standard CDE icon sizes
* The new ttsnoop is smaller:
* source: 17Kloc 36Kloc
* object: 205K+32K+16K = 250K 370K+26K+33K = 430K
* msg dialog: 325Kpixel^2 520Kpixel^2
* pat dialog: 230Kpixel^2 455Kpixel^2
* No need for localization
The TeleUse ttsnoop has over 900 messages in it, mostly
consisting of editorial commentary about ToolTalk. (Some of
the commentary is wrong or not in sync with the CDE changes
to ToolTalk.) The justification for not translating these
messages is that ttsnoop is a programmer's tool, not an end
user's tool.
Except for its usage message, every string in the new ttsnoop
is composed solely of keywords from public CDE APIs. The
editorial commentary is replaced by automatically bringing up
the relevant ToolTalk man pages (which are more likely to get
localized than the old ttsnoop's 900+ messages).
* Fixes ttsnoop bugs
If a user runs the command-line message tracing tool
(tttrace) and suspends it or pages its output, the result is
that within minutes the entire desktop locks up (defect
5501). The existing ttsnoop is hard enough to use that
customers are more likely to run tttrace directly and risk
desktop freeze. The new ttsnoop makes running tttrace by
hand unnecessary.
The new ttsnoop uses relative layout and so behaves correctly
for changes in geometry and font preference.
The new ttsnoop has a proper and complete man page, and
correctly places it in man1 (instead of man6).
* More features
The existing ttsnoop is missing all of these features of the
new ttsnoop:
* Messages
* Separate properties window per message
* Send on exit, Accept, Reject, Reply, Fail, Destroy
* Add message callbacks
* Messages printed in standard format via tt_message_print()
* Generate
* new message dialog containing cloned message
* C code (including callback for requests and offers)
* TT_MSG action
* ptype containing matching static pattern
* new pattern dialog containing matching dynamic pattern
* new message dialog containing Status notice
* Patterns
* Handler patterns (as well as observer patterns)
* Separate properties window per pattern
* Unregister, (re)register, destroy
* Add pattern callbacks
* Files
* Join, quit, get/set/unset default
* Call ttdt_file_*() APIs
* Call netfile APIs
* Session: join, quit, set default
* Ptype: declare, undeclare, set default, exists
* Types: load, reload, enumerate, decompile, dump TT_MSG actions
* Procids: open, close, suspend, resume
* libc menu: system(), chdir(), pause(), exit()
* Help
* Menu items open man1/tt* man pages
* On-item help opens man3/tt* man pages
* Dialogs for choosing sessions, procids, standard ops
* Comprehensive command line options
* to specify initial pattern
* to log snoop output
* Interface Changes
The ttsnoop GUI, CLI, and man page are completely new. Note
that, except as noted under Documentation, there are no
programmatic or documentation dependencies on these interfaces
in the rest of CDE.
* Code Changes
update: cdesrc/databases/CDE-TT.udb
update: cdesrc/databases/CDE-RUN.udb
update: cdesrc/databases/CDE-MAN.udb
update: cdesrc/databases/CDE-ICONS.udb
create: cdesrc/cde1/icons/DtTtsnp.t_m.bm
create: cdesrc/cde1/icons/DtTtsnp.t.pm
create: cdesrc/cde1/icons/DtTtsnp.t.bm
create: cdesrc/cde1/icons/DtTtsnp.m_m.bm
create: cdesrc/cde1/icons/DtTtsnp.m.pm
create: cdesrc/cde1/icons/DtTtsnp.m.bm
create: cdesrc/cde1/icons/DtTtsnp.l_m.bm
create: cdesrc/cde1/icons/DtTtsnp.l.bm
create: cdesrc/cde1/icons/DtTtsnp.l.pm
update: cdesrc/lib/tt/man/man6/Imakefile
update: cdesrc/lib/tt/man/man1/Imakefile
rename from: cdesrc/lib/tt/man/man6/ttsnoop.6xo
to: cdesrc/lib/tt/man/man1/ttsnoop.1xo
update: cdesrc/lib/tt/man/man6/ttsnoop.6xo
update: cdesrc/lib/tt/bin/Imakefile
create: cdesrc/lib/tt/bin/ttsnoop2/DtTt.h
create: cdesrc/lib/tt/bin/ttsnoop2/apiTracer.bil
create: cdesrc/lib/tt/bin/ttsnoop2/argChooser.bil
create: cdesrc/lib/tt/bin/ttsnoop2/callbackChooser.bil
create: cdesrc/lib/tt/bin/ttsnoop2/patternProps.bil
create: cdesrc/lib/tt/bin/ttsnoop2/sessionChooser.bil
create: cdesrc/lib/tt/bin/ttsnoop2/stringChooser.bil
create: cdesrc/lib/tt/bin/ttsnoop2/ttChooser.bil
create: cdesrc/lib/tt/bin/ttsnoop2/ttsnoop.C
create: cdesrc/lib/tt/bin/ttsnoop2/tt_c++.h
create: cdesrc/lib/tt/bin/ttsnoop2/ttsnoop.bil
create: cdesrc/lib/tt/bin/ttsnoop2/ttsnoop.bip
create: cdesrc/lib/tt/bin/ttsnoop2/fileChooser.bil
create: cdesrc/lib/tt/bin/ttsnoop2/messageProps.bil
create: cdesrc/lib/tt/bin/ttsnoop2/callbackChooser_stubs.C
create: cdesrc/lib/tt/bin/ttsnoop2/ttChooser_stubs.C
create: cdesrc/lib/tt/bin/ttsnoop2/externC.h
create: cdesrc/lib/tt/bin/ttsnoop2/DtTt.C
create: cdesrc/lib/tt/bin/ttsnoop2/Makefile.AIX
create: cdesrc/lib/tt/bin/ttsnoop2/patternProps_stubs.C
create: cdesrc/lib/tt/bin/ttsnoop2/tt_c++.C
create: cdesrc/lib/tt/bin/ttsnoop2/messageProps_stubs.C
create: cdesrc/lib/tt/bin/ttsnoop2/stringChooser_stubs.C
create: cdesrc/lib/tt/bin/ttsnoop2/ttsnoop_stubs.C
create: cdesrc/lib/tt/bin/ttsnoop2/fileChooser_stubs.C
create: cdesrc/lib/tt/bin/ttsnoop2/sessionChooser_stubs.C
create: cdesrc/lib/tt/bin/ttsnoop2/apiTracer_stubs.C
create: cdesrc/lib/tt/bin/ttsnoop2/closeBrace.h
create: cdesrc/lib/tt/bin/ttsnoop2/Makefile.SunOS
create: cdesrc/lib/tt/bin/ttsnoop2/argChooser_stubs.C
create: cdesrc/lib/tt/bin/ttsnoop2/Makefile.HP-UX
create: cdesrc/lib/tt/bin/ttsnoop2/Ttsnoop
* Risk
No part of CDE depends on ttsnoop, so there is vanishingly small
runtime risk.
The overall CDE build depends on ttsnoop being able to build.
ttsnoop builds on SunOS, HP-UX, and AIX with no problems. The
risk of breaking the build is thought to be small.
* Testing
ttsnoop has been built and manually exercised on AIX, HP-UX, and
SunOS.
* Performance
The new ttsnoop is much smaller than the old one, but that is
not very relevant since its primary purpose is for debugging.
* Documentation
The man page has been completely rewritten, as has
LearningProducts/APIdesktop/TooltalkUser/ttsnoop.mif.
* Translation
I would be surprised if either ttsnoop.6 or ttsnoop.mif have
already been translated by anybody to any language (especially
English ;-).