00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_FORMAT_SDFILE_H
00008 #define BALL_FORMAT_SDFILE_H
00009
00010 #ifndef BALL_FORMAT_MOLFILE_H
00011 # include <BALL/FORMAT/MOLFile.h>
00012 #endif
00013
00014 namespace BALL
00015 {
00024 class BALL_EXPORT SDFile
00025 : public MOLFile
00026 {
00027 public:
00028
00029 BALL_CREATE(SDFile)
00030
00031
00034
00037 SDFile()
00038 ;
00039
00042 SDFile(const String& filename, File::OpenMode open_mode = std::ios::in)
00043 throw(Exception::FileNotFound);
00044
00047 SDFile(const SDFile& file)
00048 throw(Exception::FileNotFound);
00049
00051 virtual ~SDFile()
00052 ;
00053
00055
00059
00065 virtual bool write(const System& system)
00066 throw(File::CannotWrite);
00067
00070 virtual bool write(const Molecule& molecule)
00071 throw(File::CannotWrite);
00072
00075 virtual bool read(System& system)
00076 throw(Exception::ParseError);
00077
00080 virtual Molecule* read()
00081 throw(Exception::ParseError);
00082
00093 void disableAtoms()
00094 ;
00095
00099 void enableAtoms()
00100 ;
00101
00103 const SDFile& operator = (const SDFile& file)
00104 ;
00105
00107
00108 protected:
00109
00114 void readPropertyBlock_(Molecule& molecule);
00115
00120 void writePropertyBlock_(const Molecule& molecule);
00121
00124 bool read_atoms_;
00125 };
00126 }
00127
00128 #endif // BALL_FORMAT_SDFILE_H