00001 /*****************************************************************************/ 00002 /*! 00003 * \file notifylist.h 00004 * 00005 * Author: Clark Barrett 00006 * 00007 * Created: Mon Jan 20 13:52:19 2003 00008 * 00009 * <hr> 00010 * 00011 * License to use, copy, modify, sell and/or distribute this software 00012 * and its documentation for any purpose is hereby granted without 00013 * royalty, subject to the terms and conditions defined in the \ref 00014 * LICENSE file provided with this distribution. 00015 * 00016 * <hr> 00017 * 00018 */ 00019 /*****************************************************************************/ 00020 00021 #ifndef _cvc3__include__notifylist_h_ 00022 #define _cvc3__include__notifylist_h_ 00023 00024 #include "expr.h" 00025 #include "cdlist.h" 00026 00027 namespace CVC3 { 00028 00029 class Theory; 00030 00031 class NotifyList { 00032 CDList<Theory*> d_tlist; 00033 CDList<Expr> d_elist; 00034 00035 public: 00036 NotifyList(Context* c) : d_tlist(c), d_elist(c) { 00037 IF_DEBUG(d_elist.setName("CDList[NotifyList]")); 00038 } 00039 unsigned size() const { return d_tlist.size(); } 00040 void add(Theory* t, const Expr& e) { d_tlist.push_back(t); d_elist.push_back(e); } 00041 Theory* getTheory(int i) const { return d_tlist[i]; } 00042 Expr getExpr(int i) const { return d_elist[i]; } 00043 }; 00044 00045 } 00046 00047 #endif