00001 /*************************************************************************** 00002 *cr 00003 *cr (C) Copyright 1995-2019 The Board of Trustees of the 00004 *cr University of Illinois 00005 *cr All Rights Reserved 00006 *cr 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * RCS INFORMATION: 00011 * 00012 * $RCSfile: CoorData.h,v $ 00013 * $Author: johns $ $Locker: $ $State: Exp $ 00014 * $Revision: 1.12 $ $Date: 2019/01/17 21:20:58 $ 00015 * 00016 *************************************************************************** 00017 * DESCRIPTION: 00018 * CoorData 00019 * Abstract base class representing objects that periodically read or 00020 * write new timesteps. Next best thing to multithreading! 00021 * 00022 ***************************************************************************/ 00023 #ifndef COOR_DATA_H 00024 #define COOR_DATA_H 00025 00026 #include <stdlib.h> 00027 #include <string.h> 00028 00029 class Molecule; 00030 00032 class CoorData { 00033 public: 00034 char *name; 00035 00036 public: 00037 enum CoorDataState { DONE, NOTDONE }; 00038 00039 CoorData(const char *nm) { 00040 name = strdup(nm); 00041 } 00042 virtual ~CoorData() { 00043 free(name); 00044 } 00045 00047 virtual CoorDataState next(Molecule *m) = 0; 00048 }; 00049 00050 #endif 00051