00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 00005 #ifndef BALL_FORMAT_ANTECHAMBERFILE_H 00006 #define BALL_FORMAT_ANTECHAMBERFILE_H 00007 00008 #ifndef BALL_FORMAT_GENERICMOLFILE_H 00009 # include <BALL/FORMAT/genericMolFile.h> 00010 #endif 00011 00012 namespace BALL 00013 { 00014 class Atom; 00015 class AtomContainer; 00016 class System; 00017 00025 class BALL_EXPORT AntechamberFile 00026 : public GenericMolFile 00027 { 00028 public: 00029 00033 00036 AntechamberFile(); 00037 00040 AntechamberFile(const String& filename, File::OpenMode open_mode = std::ios::in) 00041 throw(Exception::FileNotFound); 00042 00044 virtual ~AntechamberFile(); 00046 00050 00053 virtual bool write(const AtomContainer& ac) 00054 throw(File::CannotWrite); 00055 00058 virtual bool write(const System& system) 00059 throw(File::CannotWrite); 00060 00063 virtual bool read(System& system) 00064 throw(Exception::ParseError); 00065 00068 virtual Molecule* read() 00069 throw(Exception::ParseError); 00070 00073 virtual bool write(const Molecule& molecule) 00074 throw(File::CannotWrite); 00075 00077 00078 protected: 00079 void ac_split_(const String& line, std::vector<String>& split); 00080 }; 00081 } 00082 #endif