00001 // -*- C++ -*- 00002 /*************************************************************************** 00003 * 00004 * The IPPL Framework 00005 * 00006 * 00007 * Visit http://people.web.psi.ch/adelmann/ for more details 00008 * 00009 ***************************************************************************/ 00010 00011 #ifndef FIELD_LAYOUT_USER_H 00012 #define FIELD_LAYOUT_USER_H 00013 00014 /*********************************************************************** 00015 * 00016 * FieldLayoutUser is a base class for all classes which need to use 00017 * a FieldLayout - it is derived from User, which provides a virtual 00018 * function 'notifyUserOfDelete' which is called when the FieldLayout 00019 * is deleted, and the virtual function 'Repartition' which is called 00020 * when a Field needs to be redistributed between processors. 00021 * 00022 ***********************************************************************/ 00023 00024 // include files 00025 #include "Utility/User.h" 00026 #include "Utility/UserList.h" 00027 00028 00029 // class definition 00030 class FieldLayoutUser : public User { 00031 00032 public: 00033 // constructor - the base class selects a unique ID value 00034 FieldLayoutUser(); 00035 00036 // destructor, nothing to do here 00037 virtual ~FieldLayoutUser(); 00038 00039 // 00040 // virtual functions for FieldLayoutUser's 00041 // 00042 00043 // Repartition onto a new layout 00044 virtual void Repartition(UserList *) = 0; 00045 }; 00046 00047 #endif // FIELD_LAYOUT_USER_H 00048 00049 /*************************************************************************** 00050 * $RCSfile: FieldLayoutUser.h,v $ $Author: adelmann $ 00051 * $Revision: 1.1.1.1 $ $Date: 2003/01/23 07:40:27 $ 00052 * IPPL_VERSION_ID: $Id: FieldLayoutUser.h,v 1.1.1.1 2003/01/23 07:40:27 adelmann Exp $ 00053 ***************************************************************************/