/usr/include/BALL/FORMAT/SDFile.h is in libball1.4-dev 1.4.3~beta1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | // -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#ifndef BALL_FORMAT_SDFILE_H
#define BALL_FORMAT_SDFILE_H
#ifndef BALL_FORMAT_MOLFILE_H
# include <BALL/FORMAT/MOLFile.h>
#endif
namespace BALL
{
/** MDL SD file class.
This class enables BALL to read and write MDL SD files. \par
A description of this file format (and the related \link MOLFile MOLFile \endlink
format) can be obtained from the MDL webpage http://www.mdli.com
\par
\ingroup StructureFormats
*/
class BALL_EXPORT SDFile
: public MOLFile
{
public:
/** @name Constructors and Destructors
*/
//@{
/** Default constructor
*/
SDFile();
/** Detailed constructor.
* @throw Exception::FileNotFound if the file could not be opened
*/
SDFile(const String& filename, File::OpenMode open_mode = std::ios::in);
/// Destructor
virtual ~SDFile();
//@}
/** @name Reading and Writing of Kernel Datastructures
*/
//@{
/** Write a system to the SD file.
* Write all molecules contained in the system to the
* SD file. All named properties are included in the
* property section.
* @throw File::CannotWrite if writing to the file failed
*/
virtual bool write(const System& system);
/** Append a single molecule to the SD file.
* @throw File::CannotWrite if writing to the file failed
*/
virtual bool write(const Molecule& molecule);
/** Read a system from the SD file
* @throw Exception::ParseError if a syntax error was encountered
*/
virtual bool read(System& system);
/** Read a single molecule from an SD file.
* @throw Exception::ParseError if a syntax error was encountered
*/
virtual Molecule* read();
/** Do not read atoms and bonds.
* This (seemingly strange) option allows the user to read
* the properties of the molecules only. Since SD files can contain
* all kinds of information besides the molecular structure
* and reading the structure can be rather time and space consuming,
* you can disable it with this option. The \link read read \endlink and \link write write \endlink
* methods will still create molecules, but they will be empty.
* However, the \link NamedProperties NamedProperties \endlink of the molecules contain
* the optional information contained in the SD file.
*/
void disableAtoms();
/** Read atoms and bonds.
* @see disableAtoms
*/
void enableAtoms();
///
const SDFile& operator = (const SDFile& file);
//@}
protected:
/** Read the property block of an SD file.
The values are stored as named properties in the
molecule read.
*/
void readPropertyBlock_(Molecule& molecule);
/** Read the propertyblock of an SD file.
The values are stored as named properties in the
molecule read.
*/
void writePropertyBlock_(const Molecule& molecule);
/** Whether atoms and bonds should be read
*/
bool read_atoms_;
};
} // namespace BALL
#endif // BALL_FORMAT_SDFILE_H
|