diff options
Diffstat (limited to 'src/theory/ee_manager.h')
-rw-r--r-- | src/theory/ee_manager.h | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/theory/ee_manager.h b/src/theory/ee_manager.h index aa4bcc66c..14175037e 100644 --- a/src/theory/ee_manager.h +++ b/src/theory/ee_manager.h @@ -25,6 +25,9 @@ #include "theory/uf/equality_engine.h" namespace CVC4 { + +class TheoryEngine; + namespace theory { /** @@ -48,9 +51,10 @@ struct EeTheoryInfo class EqEngineManager { public: + EqEngineManager(TheoryEngine& te); virtual ~EqEngineManager() {} /** - * Finish initialize, called by TheoryEngine::finishInit after theory + * Initialize theories, called during TheoryEngine::finishInit after theory * objects have been created but prior to their final initialization. This * sets up equality engines for all theories. * @@ -59,16 +63,6 @@ class EqEngineManager */ virtual void initializeTheories() = 0; /** - * Finish initialize, called by TheoryEngine::finishInit after theory - * objects have been created but prior to their final initialization. This - * sets up equality engines for all theories. - * - * This method is context-independent, and is applied once during - * the lifetime of TheoryEngine (during finishInit). - */ - virtual void initializeModel(TheoryModel* m, - eq::EqualityEngineNotify* notify) = 0; - /** * Get the equality engine theory information for theory with the given id. */ const EeTheoryInfo* getEeTheoryInfo(TheoryId tid) const; @@ -80,7 +74,13 @@ class EqEngineManager */ virtual eq::EqualityEngine* getCoreEqualityEngine() = 0; + /** Allocate equality engine that is context-dependent on c with info esi */ + eq::EqualityEngine* allocateEqualityEngine(EeSetupInfo& esi, + context::Context* c); + protected: + /** Reference to the theory engine */ + TheoryEngine& d_te; /** Information related to the equality engine, per theory. */ std::map<TheoryId, EeTheoryInfo> d_einfo; }; |