Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

/home/pauldt/projects/IDEA/IDEA-ALL/IDEA-DEV/Modules/PLASMA/PlanServer/Includes/PlasmaPlanDatabaseListener.hh

Go to the documentation of this file.
00001 // -*- Mode: C++ -*-
00002 //      CVS: $Id: PlasmaPlanDatabaseListener.hh,v 1.7 2005/12/30 22:42:29 rijsman Exp $
00003 //      Tag: $name$
00004 //     Info: $CVSROOT/IDEA-DEV/COPYRIGHT
00005 
00006 #ifndef PLASMA_DATABASE_LISTENER_HEADER_
00007 #define PLASMA_DATABASE_LISTENER_HEADER_
00008 
00009 #include "PlanDatabaseListener.hh"
00010 #include "ConstraintEngineListener.hh"
00011 
00012 namespace IDEA
00013 {
00014   using namespace EUROPA;
00015 
00016   class PslDatabase;
00017 
00025   class PlasmaPlanDatabaseListener:
00026     public PlanDatabaseListener
00027   {
00028   public:
00029     PlasmaPlanDatabaseListener( const PlanDatabaseId& planDatabase, const PslDatabase* database );
00030 
00031     void endBufferActivated();
00032 
00033     void notifyAdded(const ObjectId& object);
00034     void notifyRemoved(const ObjectId& object);
00035     void notifyAdded(const TokenId& token);
00036     void notifyRemoved(const TokenId& token);
00037     void notifyActivated(const TokenId& token);
00038     void notifyDeactivated(const TokenId& token);
00039     void notifyMerged(const TokenId& token);
00040     void notifySplit(const TokenId& token);
00041     void notifyRejected(const TokenId& token);
00042     void notifyReinstated(const TokenId& token);
00043     void notifyConstrained(const ObjectId& object, const TokenId& predecessor, const TokenId& successor);
00044     void notifyFreed(const ObjectId& object, const TokenId& predecessor, const TokenId& successor);
00045     void notifyAdded(const ObjectId& object, const TokenId& token);
00046     void notifyRemoved(const ObjectId& object, const TokenId& token);
00047 
00048     void startBufferActivated();
00049   private:
00050     void handleActivated( const TokenId& token );
00051 
00052     const PslDatabase* m_Database;
00053     typedef std::set< EUROPA::TokenId > TokenSet;
00054 
00055     TokenSet m_ActivatedBuffer;
00056     bool m_BufferActivated;
00057   };
00058 
00064   class PlasmaConstraintEngineListener:
00065     public ConstraintEngineListener
00066   {
00067   public:
00068     PlasmaConstraintEngineListener(const ConstraintEngineId& constraintEngine, const PslDatabase* database );
00075     void notifyChanged(const ConstrainedVariableId& variable, const DomainListener::ChangeType& changeType);
00076     void notifyRemoved(const ConstrainedVariableId& variable);
00077     
00078     void startBufferActivated();
00079     void endBufferActivated();
00080   protected:
00081     void handleEvent( const ConstrainedVariableId& variable, const DomainListener::ChangeType& changeType); 
00082   private:
00083     const PslDatabase* m_Database;
00084     bool m_BufferActivated;
00085 
00086     typedef std::pair< ConstrainedVariableId, DomainListener::ChangeType > BufferedEvent;
00087     typedef std::list< BufferedEvent > BufferedEvents;
00088 
00089     BufferedEvents m_Events;
00090   };
00091   
00092 }
00093 
00094 #endif // PLASMA_DATABASE_LISTENER_HEADER_

Contact information
© IDEA
Generated on Fri Feb 3 17:09:42 2006 for IDEA.