/usr/include/BALL/FORMAT/GAMESSDatFile.h is in libball1.4-dev 1.4.1+20111206-3.
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 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | // -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#ifndef BALL_FORMAT_GAMESSDATFILE_H
#define BALL_FORMAT_GAMESSDATFILE_H
#ifndef BALL_FORMAT_GENERICMOLFILE_H
# include <BALL/FORMAT/genericMolFile.h>
#endif
#ifndef BALL_DATATYPE_STRINGHASHMAP_H
# include <BALL/DATATYPE/stringHashMap.h>
#endif
namespace BALL
{
/** GAMESSDat file class.
* This class enables BALL to read and write input and output .dat files for
* the GAMESS quantum chemistry application.
*
* \ingroup StructureFormats
*/
class BALL_EXPORT GAMESSDatFile
: public GenericMolFile
{
public:
/** Nested class for the data blocks of the GAMESSFile **/
class block
{
public:
/** The name of this block **/
String blockname;
/** Stores the data in key - value format **/
StringHashMap<String> data;
void operator >> (std::ostream& os) const;
};
/** State of the parser **/
struct State
{
GAMESSDatFile* current_parser;
};
/** @name Constructors and Destructors
*/
//@{
/** Default constructor
*/
GAMESSDatFile();
/** Detailed constructor
* @throw Exception::FileNotFound if the file could not be opened
*/
GAMESSDatFile(const String& filename, File::OpenMode open_mode = std::ios::in);
/** Destructor
*/
virtual ~GAMESSDatFile();
//@}
/** @name Assignment.
*/
//@{
/** Assignment operator.
* Create a new object pointing to the same filename.
* @throw Exception::FileNotFound if the file could not be opened
*/
const GAMESSDatFile& operator = (const GAMESSDatFile& rhs);
//@}
/** @name Reading and Writing of Kernel Datastructures
*/
//@{
/** Write a molecule to a GAMESSDatFile.
* If additional GAMESS - keywords are stored in this class, they
* will be written as well.
* @throw File::CannotWrite if writing to the file failed
*/
virtual bool write(const Molecule& molecule);
/** Write a system to a GAMESSDatFile.
* If additional GAMESS - keywords are stored in this class, they
* will be written as well.
* @throw File::CannotWrite if writing to the file failed
*/
virtual bool write(const System& molecule);
/** Read a Molecule from the GAMESSDatFile.
* If the GAMESS .dat - file contains additional lines apart from the
* molecule itself, they are stored in this class.
* @throw Exception::ParseError if a syntax error was encountered
*/
virtual Molecule* read();
/** Read a System from the GAMESSDatFile.
* If the GAMESS .dat - file contains additional lines apart from the
* molecule itself, they are stored in this class.
* @throw Exception::ParseError if a syntax error was encountered
*/
virtual bool read(System& system);
//@}
/** @name Accessors
*/
//@{
void newMolecule();
void setMoleculeName(char* name);
void insertAtom(char* element, float charge, float x, float y, float z);
void insertBond(Index a1, Index a2);
void inBlock(const char* blockname);
void insertBlockedData(const char* key, const char* value);
void insertBlockedData(const String& key, const String& value);
String& getBlockedData(const String& block, const String& key);
const String& getBlockedData(const String& block, const String& key) const;
void clearParameters();
//@}
static State state;
protected:
virtual void initRead_();
Molecule* molecule_;
String current_block_;
StringHashMap<block> blocks_;
String symmetry_group_;
};
}
#endif // BALL_FORMAT_GAMESSDATFILE_H
|