[go: up one dir, main page]

File: exception.h

package info (click to toggle)
srecord 1.39-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 3,624 kB
  • ctags: 1,822
  • sloc: cpp: 18,283; sh: 5,839; makefile: 1,701; awk: 201; vhdl: 15
file content (68 lines) | stat: -rw-r--r-- 1,771 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//
//      srecord - manipulate eprom load files
//      Copyright (C) 2000, 2002, 2003, 2006, 2007 Peter Miller
//
//      This program is free software; you can redistribute it and/or modify
//      it under the terms of the GNU General Public License as published by
//      the Free Software Foundation; either version 3 of the License, or
//      (at your option) any later version.
//
//      This program is distributed in the hope that it will be useful,
//      but WITHOUT ANY WARRANTY; without even the implied warranty of
//      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//      GNU General Public License for more details.
//
//      You should have received a copy of the GNU General Public License
//      along with this program. If not, see
//      <http://www.gnu.org/licenses/>.
//

#ifndef INCLUDE_QUIT_EXCEPTION_H
#define INCLUDE_QUIT_EXCEPTION_H


#include <lib/quit.h>

/**
  * The quit_exception class is use to represent a quit handler which
  * throws an exception, rather than call ::exit.
  */
class quit_exception:
    public quit
{
public:
    /**
      * The destructor.
      */
    virtual ~quit_exception();

    /**
      * The default constructor.
      */
    quit_exception();

    /**
      * the vomit class is used for the throw.
      */
    class vomit { };

protected:
    // see base class for documentation
    virtual void exit(int n);

    // see base class for documentation
    virtual void message_v(const char *fmt, va_list);

private:
    /**
      * The copy constructor.  Do not use.
      */
    quit_exception(const quit_exception &);

    /**
      * The assignment operator.  Do not use.
      */
    quit_exception &operator=(const quit_exception &);
};

#endif // INCLUDE_QUIT_EXCEPTION_H