/******************************************************************* * * DESCRIPTION: class FlatCoordinatorModel * * AUTHOR: Ezequiel Glinsky * * EMAIL: mailto://eglinsky@sce.carleton.ca * * DATE: March, 2004 * *******************************************************************/ #ifndef __PFCOORDMODEL_H #define __PFCOORDMODEL_H #include "model.h" //class Model #define FCOORD_NAME "FlatCoordinator" /** definitions **/ class FlatCoordinatorModel : public Model { public: virtual ~FlatCoordinatorModel() // Destructor {} unsigned long totalProcCount() const {return 1;} unsigned long localProcCount() const; protected: friend class ParallelModelAdmin; FlatCoordinatorModel( const string &name = "ParallelFlatCoordinator" ) // Constructor : Model( name ) {} virtual string className() const {return FCOORD_NAME;} virtual ParallelProcessor &createParallelProcessor() { return SingleParallelProcessorAdmin::Instance().generateFlatCoordinator( this, this->localProc());} }; // class FlatCoordinatorModel inline unsigned long FlatCoordinatorModel::localProcCount () const { if ( localProc() != ParallelProcessor::InvalidId ) return 1; else return 0; } #endif //__PFlatCoordinatorModel_H