10 #ifdef RDK_THREADSAFE_SSS
11 #ifndef MULTITHREADED_SD_MOL_SUPPLIER
12 #define MULTITHREADED_SD_MOL_SUPPLIER
19 :
public MultithreadedMolSupplier {
21 explicit MultithreadedSDMolSupplier(
22 const std::string &fileName,
bool sanitize =
true,
bool removeHs =
true,
23 bool strictParsing =
true,
unsigned int numWriterThreads = 1,
24 size_t sizeInputQueue = 5,
size_t sizeOutputQueue = 5);
26 explicit MultithreadedSDMolSupplier(
27 std::istream *inStream,
bool takeOwnership =
true,
bool sanitize =
true,
28 bool removeHs =
true,
bool strictParsing =
true,
29 unsigned int numWriterThreads = 1,
size_t sizeInputQueue = 5,
30 size_t sizeOutputQueue = 5);
32 MultithreadedSDMolSupplier();
33 ~MultithreadedSDMolSupplier()
override;
34 void init()
override {}
37 bool getEnd()
const override;
38 void setProcessPropertyLists(
bool val) { df_processPropertyLists = val; }
39 bool getProcessPropertyLists()
const {
return df_processPropertyLists; }
40 bool getEOFHitOnRead()
const {
return df_eofHitOnRead; }
43 bool extractNextRecord(std::string &record,
unsigned int &lineNum,
44 unsigned int &index)
override;
45 void readMolProps(ROMol *mol, std::istringstream &inStream);
47 ROMol *processMoleculeRecord(
const std::string &record,
48 unsigned int lineNum)
override;
51 void initFromSettings(
bool takeOwnership,
bool sanitize,
bool removeHs,
52 bool strictParsing,
unsigned int numWriterThreads,
53 size_t sizeInputQueue,
size_t sizeOutputQueue);
58 bool df_sanitize =
true, df_removeHs =
true, df_strictParsing =
true;
59 bool df_processPropertyLists =
true;
60 bool df_eofHitOnRead =
false;
61 unsigned int d_currentRecordId = 1;
#define RDKIT_FILEPARSERS_EXPORT
RDKIT_GRAPHMOL_EXPORT ROMol * removeHs(const ROMol &mol, bool implicitOnly=false, bool updateExplicitCount=false, bool sanitize=true)
returns a copy of a molecule with hydrogens removed