Action_Thermostats
        Adding_Graph_to_ChangeBondActions
        Adding_MD_integration_tests
        Adding_StructOpt_integration_tests
        AutomationFragmentation_failures
        Candidate_v1.6.1
        Candidate_v1.7.0
        ChemicalSpaceEvaluator
        Enhanced_StructuralOptimization
        Enhanced_StructuralOptimization_continued
        Exclude_Hydrogens_annealWithBondGraph
        Fix_Verbose_Codepatterns
        ForceAnnealing_with_BondGraph
        ForceAnnealing_with_BondGraph_continued
        ForceAnnealing_with_BondGraph_continued_betteresults
        ForceAnnealing_with_BondGraph_contraction-expansion
        Gui_displays_atomic_force_velocity
        JobMarket_RobustOnKillsSegFaults
        JobMarket_StableWorkerPool
        PythonUI_with_named_parameters
        Recreated_GuiChecks
        StoppableMakroAction
        TremoloParser_IncreasedPrecision
        stable
      
      
        
          | Last change
 on this file since 6e5b8d was             9eb71b3, checked in by Frederik Heber <frederik.heber@…>, 8 years ago | 
        
          | 
Commented out MemDebug include and Memory::ignore.
 MemDebug clashes with various allocation operators that use a specific
placement in memory. It is so far not possible to wrap new/delete fully.
Hence, we stop this effort which so far has forced us to put ever more
includes (with clashes) into MemDebug and thereby bloat compilation time.
MemDebug does not add that much usefulness which is not also provided by
valgrind.
 | 
        
          | 
              
Property                 mode
 set to                 100644 | 
        
          | File size:
            1.6 KB | 
      
      
| Rev | Line |  | 
|---|
| [fde8e7] | 1 | /* | 
|---|
|  | 2 | * RegistrySerializer_impl.hpp | 
|---|
|  | 3 | * | 
|---|
|  | 4 | *  Created on: Feb 27, 2016 | 
|---|
|  | 5 | *      Author: heber | 
|---|
|  | 6 | */ | 
|---|
|  | 7 |  | 
|---|
|  | 8 | #ifndef REGISTRYDESERIALIZER_IMPL_HPP_ | 
|---|
|  | 9 | #define REGISTRYDESERIALIZER_IMPL_HPP_ | 
|---|
|  | 10 |  | 
|---|
|  | 11 | // include config.h | 
|---|
|  | 12 | #ifdef HAVE_CONFIG_H | 
|---|
|  | 13 | #include <config.h> | 
|---|
|  | 14 | #endif | 
|---|
|  | 15 |  | 
|---|
| [9eb71b3] | 16 | //#include "CodePatterns/MemDebug.hpp" | 
|---|
| [fde8e7] | 17 |  | 
|---|
|  | 18 | #include "RegistryDeserializer.hpp" | 
|---|
|  | 19 |  | 
|---|
|  | 20 | #include <iostream> | 
|---|
|  | 21 | #include <sstream> | 
|---|
|  | 22 | #include <string> | 
|---|
|  | 23 |  | 
|---|
|  | 24 | #include "CodePatterns/Log.hpp" | 
|---|
|  | 25 |  | 
|---|
|  | 26 | template <class T> | 
|---|
|  | 27 | void RegistryDeserializer<T>::operator()() | 
|---|
|  | 28 | { | 
|---|
|  | 29 | std::string linestring; | 
|---|
|  | 30 | while (serialized.good()) { | 
|---|
|  | 31 | getline(serialized, linestring); | 
|---|
| [d24750] | 32 | const std::string comment("#"); | 
|---|
|  | 33 | if (linestring.find(comment) != std::string::npos) { | 
|---|
|  | 34 | LOG(4, "DEBUG: Skipping comment line:"+linestring); | 
|---|
|  | 35 | continue; | 
|---|
|  | 36 | } | 
|---|
| [0550b6] | 37 | const std::string delimiters("{}"); | 
|---|
|  | 38 | const size_t delimitersBegin = linestring.find_first_of(delimiters); | 
|---|
|  | 39 | if (delimitersBegin != std::string::npos) { | 
|---|
|  | 40 | LOG(2, "INFO: Encountered section end."); | 
|---|
|  | 41 | return; | 
|---|
|  | 42 | } | 
|---|
| [fde8e7] | 43 | const std::string whitespace(" \t"); | 
|---|
|  | 44 | const size_t strBegin = linestring.find_first_not_of(whitespace); | 
|---|
|  | 45 | const size_t colonpos = linestring.find(":"); | 
|---|
|  | 46 | if ((strBegin != std::string::npos) && (colonpos != std::string::npos)) { | 
|---|
|  | 47 | // get potential's token | 
|---|
|  | 48 | const std::string token = linestring.substr(strBegin, colonpos); | 
|---|
|  | 49 | std::stringstream itemstream(linestring); | 
|---|
|  | 50 |  | 
|---|
|  | 51 | // instantiate type | 
|---|
|  | 52 | T * const item = factory.createInstance( | 
|---|
|  | 53 | token, itemstream); | 
|---|
|  | 54 |  | 
|---|
|  | 55 | // and register | 
|---|
|  | 56 | registry.registerInstance(item); | 
|---|
|  | 57 |  | 
|---|
|  | 58 | } else { | 
|---|
|  | 59 | ELOG(2, "Line '" << linestring << "' contains no " << name << "."); | 
|---|
|  | 60 | } | 
|---|
|  | 61 | } | 
|---|
|  | 62 | } | 
|---|
|  | 63 |  | 
|---|
|  | 64 |  | 
|---|
|  | 65 | #endif /* REGISTRYDESERIALIZER_IMPL_HPP_ */ | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.