| [de0af2] | 1 | /*
 | 
|---|
 | 2 |  * ExportGraph_ToFiles.hpp
 | 
|---|
 | 3 |  *
 | 
|---|
 | 4 |  *  Created on: 08.03.2012
 | 
|---|
 | 5 |  *      Author: heber
 | 
|---|
 | 6 |  */
 | 
|---|
 | 7 | 
 | 
|---|
 | 8 | #ifndef EXPORTGRAPH_TOFILES_HPP_
 | 
|---|
 | 9 | #define EXPORTGRAPH_TOFILES_HPP_
 | 
|---|
 | 10 | 
 | 
|---|
 | 11 | // include config.h
 | 
|---|
 | 12 | #ifdef HAVE_CONFIG_H
 | 
|---|
 | 13 | #include <config.h>
 | 
|---|
 | 14 | #endif
 | 
|---|
 | 15 | 
 | 
|---|
| [ca8bea] | 16 | #include <string>
 | 
|---|
 | 17 | #include <vector>
 | 
|---|
 | 18 | 
 | 
|---|
 | 19 | #include "Fragmentation/HydrogenSaturation_enum.hpp"
 | 
|---|
| [de0af2] | 20 | #include "Fragmentation/Exporters/ExportGraph.hpp"
 | 
|---|
| [df5b8c] | 21 | #include "Fragmentation/SortIndex.hpp"
 | 
|---|
| [ca8bea] | 22 | 
 | 
|---|
 | 23 | class ListOfLocalAtoms_t;
 | 
|---|
| [b4f72c] | 24 | class molecule;
 | 
|---|
| [de0af2] | 25 | 
 | 
|---|
 | 26 | /** ExportGraph_ToFiles implements an ExportGraph as storing all fragmentary
 | 
|---|
 | 27 |  * systems to files.
 | 
|---|
 | 28 |  */
 | 
|---|
 | 29 | class ExportGraph_ToFiles : public ExportGraph
 | 
|---|
 | 30 | {
 | 
|---|
 | 31 | public:
 | 
|---|
| [276ac6] | 32 |         ExportGraph_ToFiles(
 | 
|---|
 | 33 |             const Graph &_graph,
 | 
|---|
 | 34 |             const enum HydrogenTreatment _treatment,
 | 
|---|
| [98a293b] | 35 |             const enum HydrogenSaturation _saturation,
 | 
|---|
 | 36 |       const SaturatedFragment::GlobalSaturationPositions_t &_globalsaturationpositions);
 | 
|---|
| [ca8bea] | 37 |         virtual ~ExportGraph_ToFiles();
 | 
|---|
| [de0af2] | 38 | 
 | 
|---|
 | 39 |         void operator()();
 | 
|---|
| [ca8bea] | 40 | 
 | 
|---|
 | 41 |         void setPrefix(const std::string &_prefix) {
 | 
|---|
 | 42 |           prefix = _prefix;
 | 
|---|
 | 43 |         }
 | 
|---|
 | 44 | 
 | 
|---|
 | 45 |         void setOutputTypes(const std::vector<std::string> &_typelist) {
 | 
|---|
 | 46 |           typelist = _typelist;
 | 
|---|
 | 47 |         }
 | 
|---|
 | 48 | 
 | 
|---|
| [7cdf58] | 49 | private:
 | 
|---|
 | 50 |         /** Helper function to store a fragment for all desired types to file.
 | 
|---|
 | 51 |          *
 | 
|---|
 | 52 |          * \param CurrentFragment SaturatedFragment to store to file
 | 
|---|
 | 53 |          * \param FragmentNumber number padded with zeros used in filename
 | 
|---|
 | 54 |          * \param FragmentCounter enumeration of this fragment
 | 
|---|
 | 55 |          * \return true - file written successfully, false - writing failed
 | 
|---|
 | 56 |          */
 | 
|---|
 | 57 |         bool storeFragmentForAllTypes(
 | 
|---|
 | 58 |             SaturatedFragment_ptr &CurrentFragment,
 | 
|---|
 | 59 |             char *FragmentNumber,
 | 
|---|
 | 60 |             size_t FragmentCounter) const;
 | 
|---|
 | 61 | 
 | 
|---|
 | 62 |         /** Helper function to append the key sets in this SaturatedFragment without
 | 
|---|
 | 63 |          * added hydrogens to an open stream.
 | 
|---|
 | 64 |          *
 | 
|---|
 | 65 |          * \param CurrentFragment fragment whose indices to write
 | 
|---|
 | 66 |    * \param ForcesFile open stream to write to
 | 
|---|
 | 67 |    * \param SortIndex Index to map from the BFS labeling to the sequence how of Ion_Type in the config
 | 
|---|
 | 68 |    * \return true - file written successfully, false - writing failed
 | 
|---|
 | 69 |    */
 | 
|---|
 | 70 |         bool appendToForcesFile(
 | 
|---|
 | 71 |             SaturatedFragment_ptr &CurrentFragment,
 | 
|---|
 | 72 |             std::ostream &ForcesFile,
 | 
|---|
 | 73 |             const SortIndex_t &SortIndex) const;
 | 
|---|
 | 74 | 
 | 
|---|
| [ca8bea] | 75 | private:
 | 
|---|
 | 76 |         //!> prefix for fragment files
 | 
|---|
 | 77 |         std::string prefix;
 | 
|---|
 | 78 |   //!> list of parser types for which a configuration file per fragment is stored
 | 
|---|
 | 79 |   std::vector<std::string> typelist;
 | 
|---|
| [de0af2] | 80 | };
 | 
|---|
 | 81 | 
 | 
|---|
 | 82 | #endif /* EXPORTGRAPH_TOFILES_HPP_ */
 | 
|---|