CVC3

notifylist.h

Go to the documentation of this file.
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