1 |
|
/****************************************************************************** |
2 |
|
* Top contributors (to current version): |
3 |
|
* Mathias Preiner, Aina Niemetz, Morgan Deters |
4 |
|
* |
5 |
|
* This file is part of the cvc5 project. |
6 |
|
* |
7 |
|
* Copyright (c) 2009-2021 by the authors listed in the file AUTHORS |
8 |
|
* in the top-level source directory and their institutional affiliations. |
9 |
|
* All rights reserved. See the file COPYING in the top-level source |
10 |
|
* directory for licensing information. |
11 |
|
* **************************************************************************** |
12 |
|
* |
13 |
|
* An exception signaling that a Theory should immediately |
14 |
|
* stop performing processing. |
15 |
|
* |
16 |
|
* An exception signaling that a Theory should immediately stop |
17 |
|
* performing processing and relinquish control to its caller (e.g., |
18 |
|
* in a parallel environment). A Theory might be interrupted if it |
19 |
|
* calls into its cvc5::theory::OutputChannel, and it should only |
20 |
|
* catch this exception to perform emergency repair of any invariants |
21 |
|
* it must re-establish. Further, if this exception is caught by a |
22 |
|
* Theory, the Theory should rethrow the same exception (via "throw;" |
23 |
|
* in the exception block) rather than return, as the Interrupted |
24 |
|
* instance might contain additional information needed for the |
25 |
|
* proper management of cvc5 components. |
26 |
|
*/ |
27 |
|
|
28 |
|
#include "cvc5_private.h" |
29 |
|
|
30 |
|
#ifndef CVC5__THEORY__INTERRUPTED_H |
31 |
|
#define CVC5__THEORY__INTERRUPTED_H |
32 |
|
|
33 |
|
#include "base/exception.h" |
34 |
|
|
35 |
|
namespace cvc5 { |
36 |
|
namespace theory { |
37 |
|
|
38 |
|
class Interrupted : public cvc5::Exception |
39 |
|
{ |
40 |
|
}; /* class Interrupted */ |
41 |
|
|
42 |
|
} // namespace theory |
43 |
|
} // namespace cvc5 |
44 |
|
|
45 |
|
#endif /* CVC5__THEORY__INTERRUPTED_H */ |