mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-04 21:54:27 +08:00
* Fix a hang when trying to read mols from a directory not a file on linux * thrown an exception at construction time * clarify the readme * update release notes * Refactor the stream opening and checking code to a common method Co-authored-by: Brian Kelley <bkelley@relaytx.com> Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
56 lines
1.6 KiB
C++
56 lines
1.6 KiB
C++
//
|
|
// Copyright (C) 2013 Greg Landrum and NextMove Software
|
|
//
|
|
// @@ All Rights Reserved @@
|
|
// This file is part of the RDKit.
|
|
// The contents are covered by the terms of the BSD license
|
|
// which is included in the file license.txt, found at the root
|
|
// of the RDKit source tree.
|
|
//
|
|
#include <iostream>
|
|
#include <fstream>
|
|
#include <RDGeneral/BadFileException.h>
|
|
#include <GraphMol/FileParsers/MolSupplier.h>
|
|
#include <GraphMol/FileParsers/FileParsers.h>
|
|
|
|
namespace RDKit {
|
|
|
|
PDBMolSupplier::PDBMolSupplier(std::istream *inStream, bool takeOwnership,
|
|
bool sanitize, bool removeHs,
|
|
unsigned int flavor, bool proximityBonding) {
|
|
dp_inStream = inStream;
|
|
df_owner = takeOwnership;
|
|
df_sanitize = sanitize;
|
|
df_removeHs = removeHs;
|
|
d_flavor = flavor;
|
|
df_proximityBonding = proximityBonding;
|
|
}
|
|
|
|
PDBMolSupplier::PDBMolSupplier(const std::string &fileName, bool sanitize,
|
|
bool removeHs, unsigned int flavor,
|
|
bool proximityBonding) {
|
|
dp_inStream = openAndCheckStream(fileName);
|
|
df_owner = true;
|
|
df_sanitize = sanitize;
|
|
df_removeHs = removeHs;
|
|
d_flavor = flavor;
|
|
df_proximityBonding = proximityBonding;
|
|
}
|
|
|
|
void PDBMolSupplier::init() {}
|
|
void PDBMolSupplier::reset() {}
|
|
|
|
ROMol *PDBMolSupplier::next() {
|
|
return (ROMol *)PDBDataStreamToMol(dp_inStream, df_sanitize, df_removeHs,
|
|
d_flavor, df_proximityBonding);
|
|
}
|
|
|
|
bool PDBMolSupplier::atEnd() {
|
|
if (dp_inStream->eof()) {
|
|
return true;
|
|
}
|
|
int ch = dp_inStream->peek();
|
|
return ch == -1;
|
|
}
|
|
} // namespace RDKit
|