home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / ddd / session.h < prev    next >
C/C++ Source or Header  |  1998-11-24  |  4KB  |  136 lines

  1. // $Id: session.h,v 1.18 1998/11/24 09:54:43 zeller Exp $ -*- C++ -*-
  2. //
  3.  
  4. // Copyright (C) 1997 Technische Universitaet Braunschweig, Germany.
  5. // Written by Andreas Zeller <zeller@ips.cs.tu-bs.de>.
  6. // 
  7. // This file is part of DDD.
  8. // 
  9. // DDD is free software; you can redistribute it and/or
  10. // modify it under the terms of the GNU General Public
  11. // License as published by the Free Software Foundation; either
  12. // version 2 of the License, or (at your option) any later version.
  13. // 
  14. // DDD is distributed in the hope that it will be useful,
  15. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  17. // See the GNU General Public License for more details.
  18. // 
  19. // You should have received a copy of the GNU General Public
  20. // License along with DDD -- see the file COPYING.
  21. // If not, write to the Free Software Foundation, Inc.,
  22. // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  23. // 
  24. // DDD is the data display debugger.
  25. // For details, see the DDD World-Wide-Web page, 
  26. // `http://www.cs.tu-bs.de/softech/ddd/',
  27. // or send a mail to the DDD developers <ddd@ips.cs.tu-bs.de>.
  28.  
  29. #ifndef _DDD_session_h
  30. #define _DDD_session_h
  31.  
  32. #ifdef __GNUG__
  33. #pragma interface
  34. #endif
  35.  
  36. #include <X11/Intrinsic.h>
  37. #include "strclass.h"
  38. #include "version.h"
  39.  
  40. // Name of default session
  41. const string DEFAULT_SESSION = "";
  42.  
  43. // Name of restart session
  44. const string RESTART_SESSION = "." ddd_NAME;
  45.  
  46. // Return session directories
  47.  
  48. // Root of DDD state (usually, `~/.ddd')
  49. string session_state_dir();
  50.  
  51. // File NAME in directory of session SESSION
  52. string session_file(const string& session, const string& name);
  53.  
  54. // Custom calls
  55. inline string session_state_file(const string& session)
  56. {
  57.     return session_file(session, "init");
  58. }
  59.  
  60. string session_core_file(const string& session);
  61.  
  62. inline string session_history_file(const string& session)
  63. {
  64.     return session_file(session, "history");
  65. }
  66.  
  67. inline string session_lock_file(const string& session)
  68. {
  69.     return session_file(session, "lock");
  70. }
  71.  
  72. inline string session_log_file()
  73. {
  74.     return session_file(DEFAULT_SESSION, "log");
  75. }
  76.  
  77. inline string session_tips_file()
  78. {
  79.     return session_file(DEFAULT_SESSION, "tips");
  80. }
  81.  
  82. // Create session directory for SESSION; leave messages in MSG
  83. void create_session_dir(const string& session, ostream& msg);
  84.  
  85. // Same, but leave messages in status line
  86. void create_session_dir(const string& session);
  87.  
  88. struct LockInfo {
  89.     string hostname;        // Name of host on which DDD is running
  90.     string display;        // Display used by DDD
  91.     int pid;            // DDD process ID
  92.     int uid;            // DDD user ID
  93.     string username;        // DDD user name
  94.  
  95.     LockInfo()
  96.     : hostname(), display(), pid(0), uid(0), username()
  97.     {}
  98.  
  99.     // This should avoid link warnings on SGI
  100.     // as reported by Mike Tosti <tosti@cinesite.com>
  101.     ~LockInfo() {}
  102. };
  103.  
  104. // Lock session.  Return true iff successful.  Otherwise, return
  105. // false, and return info about the locking process in INFO.
  106. bool lock_session_dir(Display *display, const string& session, LockInfo& info);
  107.  
  108. // Unlock session.  Return true iff successful.
  109. bool unlock_session_dir(const string& session);
  110.  
  111. // Delete session SESSION
  112. void delete_session(const string& session, bool silent = false);
  113.  
  114. // Set session name
  115. void set_session(const string& session);
  116.  
  117. // Name of session to be restarted with
  118. string restart_session();
  119.  
  120. // Set name of session to be restarted with
  121. void set_restart_session(const string& session = "");
  122.  
  123. // Callbacks for X11R6 session management
  124. extern void SaveSmSessionCB(Widget, XtPointer, XtPointer);
  125. extern void ShutdownSmSessionCB(Widget, XtPointer, XtPointer);
  126.  
  127. // Session editor
  128. extern void OpenSessionCB(Widget, XtPointer, XtPointer);
  129. extern void SaveSessionAsCB(Widget, XtPointer, XtPointer);
  130.  
  131. // Restart inferior debugger
  132. extern void RestartDebuggerCB(Widget, XtPointer, XtPointer);
  133.  
  134. #endif // _DDD_session_h
  135. // DON'T ADD ANYTHING BEHIND THIS #endif
  136.