1 //
2 //  Copyright (C) 2018 Susan H. Leung
3 //
4 //   @@ All Rights Reserved @@
5 //  This file is part of the RDKit.
6 //  The contents are covered by the terms of the BSD license
7 //  which is included in the file license.txt, found at the root
8 //  of the RDKit source tree.
9 //
10 #include <RDGeneral/export.h>
11 #ifndef __RD_ACIDBASE_CATALOG_ENTRY_H__
12 #define __RD_ACIDBASE_CATALOG_ENTRY_H__
13 
14 #include <Catalogs/CatalogEntry.h>
15 #include <GraphMol/Subgraphs/Subgraphs.h>
16 #include <GraphMol/Substruct/SubstructMatch.h>
17 #include <GraphMol/ChemReactions/Reaction.h>
18 #include "AcidBaseCatalogParams.h"
19 #include <GraphMol/RDKitBase.h>
20 
21 namespace RDKit {
22 namespace MolStandardize {
23 
24 class RDKIT_MOLSTANDARDIZE_EXPORT AcidBaseCatalogEntry
25     : public RDCatalog::CatalogEntry {
26  public:
AcidBaseCatalogEntry()27   AcidBaseCatalogEntry() {
28     d_descrip = "";
29     dp_props = new Dict();
30     setBitId(-1);
31   }
32 
~AcidBaseCatalogEntry()33   ~AcidBaseCatalogEntry() override {
34     delete dp_props;
35     dp_props = nullptr;
36   }
37 
38   // TODO Catalog.h requires a getOrder function
getOrder()39   unsigned int getOrder() const { return 0; }  // dp_mol->getNumBonds(); }
40 
41   void toStream(std::ostream &ss) const override;
42   std::string Serialize() const override;
43   void initFromStream(std::istream &ss) override;
44   void initFromString(const std::string &text) override;
45 
46  private:
47   std::shared_ptr<std::pair<ROMOL_SPTR, ROMOL_SPTR>> dp_pair;
48   Dict *dp_props;
49   std::string d_descrip;
50 
51 };  // class AcidBaseCatalogEntry
52 
53 }  // namespace MolStandardize
54 }  // namespace RDKit
55 
56 #endif
57