| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        debugrpt.h
 
- // Purpose:     interface of wxDebugReport*
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     @class wxDebugReportPreview
 
-     This class presents the debug report to the user and allows him to veto
 
-     report entirely or remove some parts of it. Although not mandatory, using
 
-     this class is strongly recommended as data included in the debug report
 
-     might contain sensitive private information and the user should be notified
 
-     about it as well as having a possibility to examine the data which had been
 
-     gathered to check whether this is effectively the case and discard the
 
-     debug report if it is.
 
-     wxDebugReportPreview is an abstract base class, currently the only concrete
 
-     class deriving from it is wxDebugReportPreviewStd.
 
-     @library{wxqa}
 
-     @category{debugging}
 
- */
 
- class wxDebugReportPreview
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-     */
 
-     wxDebugReportPreview();
 
-     /**
 
-         Destructor is trivial as well but should be virtual for a base class.
 
-     */
 
-     virtual ~wxDebugReportPreview();
 
-     /**
 
-         Present the report to the user and allow him to modify it by removing
 
-         some or all of the files and, potentially, adding some notes.
 
-         @return @true if the report should be processed or @false if the user
 
-                  chose to cancel report generation or removed all files from
 
-                  it.
 
-     */
 
-     virtual bool Show(wxDebugReport& dbgrpt) const = 0;
 
- };
 
- /**
 
-     @class wxDebugReportCompress
 
-     wxDebugReportCompress is a wxDebugReport which compresses all the files in
 
-     this debug report into a single ZIP file in its wxDebugReport::Process()
 
-     function.
 
-     @library{wxqa}
 
-     @category{debugging}
 
- */
 
- class wxDebugReportCompress : public wxDebugReport
 
- {
 
- public:
 
-     /**
 
-         Default constructor does nothing special.
 
-     */
 
-     wxDebugReportCompress();
 
-     /**
 
-         Set the directory where the debug report should be generated.
 
-         By default, the debug report is generated under user temporary files
 
-         directory. This is usually fine if it is meant to be processed in some
 
-         way (e.g. automatically uploaded to a remote server) but if the user is
 
-         asked to manually upload or send the report, it may be more convenient
 
-         to generate it in e.g. the users home directory and this function
 
-         allows to do this.
 
-         Notice that it should be called before wxDebugReport::Process() or it
 
-         has no effect.
 
-         @param dir
 
-             The full path to an existing directory where the debug report file
 
-             should be generated.
 
-         @since 2.9.1
 
-      */
 
-     void SetCompressedFileDirectory(const wxString& dir);
 
-     /**
 
-         Set the base name of the generated debug report file.
 
-         This function is similar to SetCompressedFileDirectory() but allows to
 
-         change the base name of the file. Notice that the file extension will
 
-         always be @c .zip.
 
-         By default, a unique name constructed from wxApp::GetAppName(), the
 
-         current process id and the current date and time is used.
 
-         @param name
 
-             The base name (i.e. without extension) of the file.
 
-         @since 2.9.1
 
-      */
 
-     void SetCompressedFileBaseName(const wxString& name);
 
-     /**
 
-         Returns the full path of the compressed file (empty if creation
 
-         failed).
 
-     */
 
-     const wxString& GetCompressedFileName() const;
 
- };
 
- /**
 
-     @class wxDebugReport
 
-     wxDebugReport is used to generate a debug report, containing information
 
-     about the program current state. It is usually used from
 
-     wxApp::OnFatalException() as shown in the @ref page_samples_debugrpt.
 
-     A wxDebugReport object contains one or more files. A few of them can be
 
-     created by the class itself but more can be created from the outside and
 
-     then added to the report. Also note that several virtual functions may be
 
-     overridden to further customize the class behaviour.
 
-     Once a report is fully assembled, it can simply be left in the temporary
 
-     directory so that the user can email it to the developers (in which case
 
-     you should still use wxDebugReportCompress to compress it in a single file)
 
-     or uploaded to a Web server using wxDebugReportUpload (setting up the Web
 
-     server to accept uploads is your responsibility, of course). Other
 
-     handlers, for example for automatically emailing the report, can be defined
 
-     as well but are not currently included in wxWidgets.
 
-     A typical usage example:
 
-     @code
 
-     wxDebugReport report;
 
-     wxDebugReportPreviewStd preview;
 
-     report.AddCurrentContext();  // could also use AddAll()
 
-     report.AddCurrentDump();     // to do both at once
 
-     if ( preview.Show(report) )
 
-         report.Process();
 
-     @endcode
 
-     @library{wxqa}
 
-     @category{debugging}
 
- */
 
- class wxDebugReport
 
- {
 
- public:
 
-     /**
 
-         This enum is used for functions that report either the current state or
 
-         the state during the last (fatal) exception.
 
-     */
 
-     enum Context {
 
-         Context_Current,
 
-         Context_Exception
 
-     };
 
-     /**
 
-         The constructor creates a temporary directory where the files that will
 
-         be included in the report are created. Use IsOk() to check for errors.
 
-     */
 
-     wxDebugReport();
 
-     /**
 
-         The destructor normally destroys the temporary directory created in the
 
-         constructor with all the files it contains. Call Reset() to prevent
 
-         this from happening.
 
-     */
 
-     virtual ~wxDebugReport();
 
-     /**
 
-         Adds all available information to the report. Currently this includes a
 
-         text (XML) file describing the process context and, under Win32, a
 
-         minidump file.
 
-     */
 
-     void AddAll(Context context = Context_Exception);
 
-     /**
 
-         Add an XML file containing the current or exception context and the
 
-         stack trace.
 
-     */
 
-     virtual bool AddContext(Context ctx);
 
-     /**
 
-         The same as calling AddContext(Context_Current).
 
-     */
 
-     bool AddCurrentContext();
 
-     /**
 
-         The same as calling AddDump(Context_Current).
 
-     */
 
-     bool AddCurrentDump();
 
-     /**
 
-         Adds the minidump file to the debug report.
 
-         Minidumps are only available under recent Win32 versions
 
-         (@c dbghlp32.dll can be installed under older systems to make minidumps
 
-         available).
 
-     */
 
-     virtual bool AddDump(Context ctx);
 
-     /**
 
-         The same as calling AddContext(Context_Exception).
 
-     */
 
-     bool AddExceptionContext();
 
-     /**
 
-         The same as calling AddDump(Context_Exception).
 
-     */
 
-     bool AddExceptionDump();
 
-     /**
 
-         Add another file to the report. If @a filename is an absolute path, it
 
-         is copied to a file in the debug report directory with the same name.
 
-         Otherwise the file will be searched in the temporary directory returned
 
-         by GetDirectory().
 
-         
 
-         The argument @a description only exists to be displayed to the user in 
 
-         the report summary shown by wxDebugReportPreview.
 
-         @see GetDirectory(), AddText()
 
-     */
 
-     virtual void AddFile(const wxString& filename, const wxString& description);
 
-     /**
 
-         This is a convenient wrapper around AddFile(). It creates the file with
 
-         the given @a name and writes @a text to it, then adds the file to the
 
-         report. The @a filename shouldn't contain the path.
 
-         @return @true if file could be added successfully, @false if an IO
 
-                  error occurred.
 
-     */
 
-     bool AddText(const wxString& filename, const wxString& text,
 
-                  const wxString& description);
 
-     /**
 
-         This method should be used to construct the full name of the files
 
-         which you wish to add to the report using AddFile().
 
-         @return The name of the temporary directory used for the files in this
 
-                  report.
 
-     */
 
-     const wxString& GetDirectory() const;
 
-     /**
 
-         Retrieves the name (relative to GetDirectory()) and the description of
 
-         the file with the given index. If @a n is greater than or equal to the
 
-         number of files, then @false is returned.
 
-     */
 
-     bool GetFile(size_t n, wxString* name, wxString* desc) const;
 
-     /**
 
-         Gets the current number files in this report.
 
-     */
 
-     size_t GetFilesCount() const;
 
-     /**
 
-         Gets the name used as a base name for various files, by default
 
-         wxApp::GetAppName() is used.
 
-     */
 
-     virtual wxString GetReportName() const;
 
-     /**
 
-         Returns @true if the object was successfully initialized. If this
 
-         method returns @false the report can't be used.
 
-     */
 
-     bool IsOk() const;
 
-     /**
 
-         Processes this report: the base class simply notifies the user that the
 
-         report has been generated. This is usually not enough -- instead you
 
-         should override this method to do something more useful to you.
 
-     */
 
-     bool Process();
 
-     /**
 
-         Removes the file from report: this is used by wxDebugReportPreview to
 
-         allow the user to remove files potentially containing private
 
-         information from the report.
 
-     */
 
-     void RemoveFile(const wxString& name);
 
-     /**
 
-         Resets the directory name we use. The object can't be used any more
 
-         after this as it becomes uninitialized and invalid.
 
-     */
 
-     void Reset();
 
- protected:
 
-     /**
 
-         This function may be overridden to add arbitrary custom context to the
 
-         XML context file created by AddContext(). By default, it does nothing.
 
-     */
 
-     virtual void DoAddCustomContext(wxXmlNode* nodeRoot);
 
-     /**
 
-         This function may be overridden to modify the contents of the exception
 
-         tag in the XML context file.
 
-     */
 
-     virtual bool DoAddExceptionInfo(wxXmlNode* nodeContext);
 
-     /**
 
-         This function may be overridden to modify the contents of the modules
 
-         tag in the XML context file.
 
-     */
 
-     virtual bool DoAddLoadedModules(wxXmlNode* nodeModules);
 
-     /**
 
-         This function may be overridden to modify the contents of the system
 
-         tag in the XML context file.
 
-     */
 
-     virtual bool DoAddSystemInfo(wxXmlNode* nodeSystemInfo);
 
- };
 
- /**
 
-     @class wxDebugReportPreviewStd
 
-     wxDebugReportPreviewStd is a standard debug report preview window. It
 
-     displays a dialog allowing the user to examine the contents of a debug
 
-     report, remove files from and add notes to it.
 
-     @library{wxqa}
 
-     @category{debugging}
 
- */
 
- class wxDebugReportPreviewStd : public wxDebugReportPreview
 
- {
 
- public:
 
-     /**
 
-         Trivial default constructor.
 
-     */
 
-     wxDebugReportPreviewStd();
 
-     /**
 
-         Shows the dialog.
 
-         @see wxDebugReportPreview::Show()
 
-     */
 
-     bool Show(wxDebugReport& dbgrpt) const;
 
- };
 
- /**
 
-     @class wxDebugReportUpload
 
-     This class is used to upload a compressed file using HTTP POST request. As
 
-     this class derives from wxDebugReportCompress, before upload the report is
 
-     compressed in a single ZIP file.
 
-     @library{wxqa}
 
-     @category{debugging}
 
- */
 
- class wxDebugReportUpload : public wxDebugReportCompress
 
- {
 
- public:
 
-     /**
 
-         This class will upload the compressed file created by its base class to
 
-         an HTML multipart/form-data form at the specified address. The @a url
 
-         is the upload page address, @a input is the name of the @c "type=file"
 
-         control on the form used for the file name and @a action is the value
 
-         of the form action field. The report is uploaded using the @e curl
 
-         program which should be available, the @e curl parameter may be used to
 
-         specify the full path to it.
 
-     */
 
-     wxDebugReportUpload(const wxString& url, const wxString& input,
 
-                         const wxString& action,
 
-                         const wxString& curl = "curl");
 
- protected:
 
-     /**
 
-         This function may be overridden in a derived class to show the output
 
-         from curl: this may be an HTML page or anything else that the server
 
-         returned. Value returned by this function becomes the return value of
 
-         wxDebugReport::Process().
 
-     */
 
-     virtual bool OnServerReply(const wxArrayString& reply);
 
- };
 
 
  |