1 /********************* */ 2 /*! \file interrupted.h 3 ** \verbatim 4 ** Top contributors (to current version): 5 ** Morgan Deters 6 ** This file is part of the CVC4 project. 7 ** Copyright (c) 2009-2019 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.\endverbatim 11 ** 12 ** \brief An exception signaling that a Theory should immediately 13 ** stop performing processing 14 ** 15 ** An exception signaling that a Theory should immediately stop 16 ** performing processing and relinquish control to its caller (e.g., 17 ** in a parallel environment). A Theory might be interrupted if it 18 ** calls into its CVC4::theory::OutputChannel, and it should only 19 ** catch this exception to perform emergency repair of any invariants 20 ** it must re-establish. Further, if this exception is caught by a 21 ** Theory, the Theory should rethrow the same exception (via "throw;" 22 ** in the exception block) rather than return, as the Interrupted 23 ** instance might contain additional information needed for the 24 ** proper management of CVC4 components. 25 **/ 26 27 #include "cvc4_private.h" 28 29 #ifndef __CVC4__THEORY__INTERRUPTED_H 30 #define __CVC4__THEORY__INTERRUPTED_H 31 32 #include "base/exception.h" 33 34 namespace CVC4 { 35 namespace theory { 36 37 class Interrupted : public CVC4::Exception { 38 };/* class Interrupted */ 39 40 }/* CVC4::theory namespace */ 41 }/* CVC4 namespace */ 42 43 #endif /* __CVC4__THEORY__INTERRUPTED_H */ 44