1 | /*
|
---|
2 | * SaturatedFragment.hpp
|
---|
3 | *
|
---|
4 | * Created on: Mar 3, 2013
|
---|
5 | * Author: heber
|
---|
6 | */
|
---|
7 |
|
---|
8 | #ifndef SATURATEDFRAGMENT_HPP_
|
---|
9 | #define SATURATEDFRAGMENT_HPP_
|
---|
10 |
|
---|
11 | // include config.h
|
---|
12 | #ifdef HAVE_CONFIG_H
|
---|
13 | #include <config.h>
|
---|
14 | #endif
|
---|
15 |
|
---|
16 | #include <set>
|
---|
17 |
|
---|
18 | #include "Fragmentation/KeySet.hpp"
|
---|
19 |
|
---|
20 | class HydrogenPool;
|
---|
21 |
|
---|
22 | /** The SaturatedFragment class acts as a wrapper to a KeySet by adding a list
|
---|
23 | * of saturation hydrogens.
|
---|
24 | *
|
---|
25 | * This SaturatedFragment along with a currently leased set of hydrogens from the
|
---|
26 | * HydrogenPool is all that is required to create a fully storable molecular
|
---|
27 | * fragment from a given Keyset.
|
---|
28 | *
|
---|
29 | * The instance notes down its existence in an external container.
|
---|
30 | *
|
---|
31 | */
|
---|
32 | class SaturatedFragment
|
---|
33 | {
|
---|
34 | public:
|
---|
35 | //!> typedef to a container to mark keysets that are in use
|
---|
36 | typedef std::set<KeySet> KeySetsInUse_t;
|
---|
37 |
|
---|
38 | /** Constructor of SaturatedFragment requires \a set which we are tightly
|
---|
39 | * associated.
|
---|
40 | *
|
---|
41 | * \param _set KeySet which this instance is associated with
|
---|
42 | * \param _container container to add KeySet as in-use
|
---|
43 | * \param _hydrogens pool with hydrogens for saturation
|
---|
44 | */
|
---|
45 | SaturatedFragment(
|
---|
46 | const KeySet &_set,
|
---|
47 | KeySetsInUse_t &_container,
|
---|
48 | HydrogenPool &_hydrogens);
|
---|
49 |
|
---|
50 | /** Destructor of class SaturatedFragment.
|
---|
51 | *
|
---|
52 | */
|
---|
53 | ~SaturatedFragment();
|
---|
54 |
|
---|
55 | /** Getter for the KeySet this instance is associated with.
|
---|
56 | *
|
---|
57 | * \return const ref to KeySet
|
---|
58 | */
|
---|
59 | const KeySet & getKeySet() const
|
---|
60 | {
|
---|
61 | return set;
|
---|
62 | }
|
---|
63 |
|
---|
64 | private:
|
---|
65 | //!> container to mark ourselves RAII-style
|
---|
66 | KeySetsInUse_t &container;
|
---|
67 | //!> key set this fragment is associated with.
|
---|
68 | const KeySet &set;
|
---|
69 | //!> pool with saturation hydrogens
|
---|
70 | HydrogenPool &hydrogens;
|
---|
71 | //!> key set containing all atoms used for e.g. storing this to file
|
---|
72 | KeySet FullMolecule;
|
---|
73 | //!> key set containing the ids of all hydrogens added for saturation
|
---|
74 | KeySet SaturationHydrogens;
|
---|
75 | };
|
---|
76 |
|
---|
77 | #endif /* SATURATEDFRAGMENT_HPP_ */
|
---|