/* $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 ;-).