10#ifdef RDK_BUILD_THREADSAFE_SSS
11#ifndef MULTITHREADED_SMILES_MOL_SUPPLIER
12#define MULTITHREADED_SMILES_MOL_SUPPLIER
20 explicit MultithreadedSmilesMolSupplier(
21 const std::string &fileName,
const std::string &delimiter =
" \t",
22 int smilesColumn = 0,
int nameColumn = 1,
bool titleLine =
true,
23 bool sanitize =
true,
unsigned int numWriterThreads = 1,
24 size_t sizeInputQueue = 5,
size_t sizeOutputQueue = 5);
26 explicit MultithreadedSmilesMolSupplier(
27 std::istream *inStream,
bool takeOwnership =
true,
28 const std::string &delimiter =
" \t",
int smilesColumn = 0,
29 int nameColumn = 1,
bool titleLine =
true,
bool sanitize =
true,
30 unsigned int numWriterThreads = 1,
size_t sizeInputQueue = 5,
31 size_t sizeOutputQueue = 5);
32 MultithreadedSmilesMolSupplier();
33 ~MultithreadedSmilesMolSupplier()
override;
35 void init()
override {}
37 bool getEnd()
const override;
39 void processTitleLine();
41 bool extractNextRecord(std::string &record,
unsigned int &lineNum,
42 unsigned int &index)
override;
44 ROMol *processMoleculeRecord(
const std::string &record,
45 unsigned int lineNum)
override;
48 void initFromSettings(
bool takeOwnership,
const std::string &delimiter,
49 int smilesColumn,
int nameColumn,
bool titleLine,
50 bool sanitize,
unsigned int numWriterThreads,
51 size_t sizeInputQueue,
size_t sizeOutputQueue);
57 bool df_sanitize =
true;
62 unsigned int d_currentRecordId = 1;
#define RDKIT_FILEPARSERS_EXPORT
std::vector< std::string > STR_VECT
bool rdvalue_is(const RDValue_cast_t)