source: src/Descriptors/DescriptorBase.hpp@ 105b72

Action_Thermostats Add_AtomRandomPerturbation Add_FitFragmentPartialChargesAction Add_RotateAroundBondAction Add_SelectAtomByNameAction Added_ParseSaveFragmentResults AddingActions_SaveParseParticleParameters Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_ParticleName_to_Atom Adding_StructOpt_integration_tests AtomFragments Automaking_mpqc_open AutomationFragmentation_failures Candidate_v1.5.4 Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator CombiningParticlePotentialParsing Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_BoundInBox_CenterInBox_MoleculeActions Fix_ChargeSampling_PBC Fix_ChronosMutex Fix_FitPartialCharges Fix_FitPotential_needs_atomicnumbers Fix_ForceAnnealing Fix_IndependentFragmentGrids Fix_ParseParticles Fix_ParseParticles_split_forward_backward_Actions Fix_PopActions Fix_QtFragmentList_sorted_selection Fix_Restrictedkeyset_FragmentMolecule Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns Fix_fitting_potentials Fixes ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion FragmentAction_writes_AtomFragments FragmentMolecule_checks_bonddegrees GeometryObjects Gui_Fixes Gui_displays_atomic_force_velocity ImplicitCharges IndependentFragmentGrids IndependentFragmentGrids_IndividualZeroInstances IndependentFragmentGrids_IntegrationTest IndependentFragmentGrids_Sole_NN_Calculation JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix MoreRobust_FragmentAutomation ODR_violation_mpqc_open PartialCharges_OrthogonalSummation PdbParser_setsAtomName PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks Rewrite_FitPartialCharges RotateToPrincipalAxisSystem_UndoRedo SaturateAtoms_findBestMatching SaturateAtoms_singleDegree StoppableMakroAction Subpackage_CodePatterns Subpackage_JobMarket Subpackage_LinearAlgebra Subpackage_levmar Subpackage_mpqc_open Subpackage_vmg Switchable_LogView ThirdParty_MPQC_rebuilt_buildsystem TrajectoryDependenant_MaxOrder TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps TremoloParser_setsAtomName Ubuntu_1604_changes stable
Last change on this file since 105b72 was 56f73b, checked in by Frederik Heber <heber@…>, 14 years ago

Added config.h also to all header files, code check test ascertain this in the future.

  • as we want to use config.h to pass stuff such as MEMDEBUG, NDEBUG, LOG_OBSERVER, we have to make sure that it is present in each and every file.
  • split up CodeChecks/testsuite.at: each test has its own .at file.
  • Property mode set to 100644
File size: 2.2 KB
Line 
1/*
2 * DescriptorBase.hpp
3 *
4 * Created on: Mar 12, 2010
5 * Author: crueger
6 */
7
8#ifndef DESCRIPTORBASE_HPP_
9#define DESCRIPTORBASE_HPP_
10
11// include config.h
12#ifdef HAVE_CONFIG_H
13#include <config.h>
14#endif
15
16
17#include <vector>
18#include <boost/shared_ptr.hpp>
19
20/***
21 * Code in this file is not used.
22 *
23 * I was not able to figure out how to factor out the common code for
24 * descriptors and have given up :-( . If somebody else wants to have
25 * another shot just go ahead, but expect a hard ride from here on.
26 */
27
28template<class _Target,
29 class _Container>
30class DescriptorBase_impl;
31
32
33template<class _Target,
34 class _Container>
35class SelectiveIterator;
36
37template<class _Target,
38 class _Container>
39class DescriptorBase
40{
41 friend class DescriptorBase_impl<_Target,_Container>;
42 friend class SelectiveIterator<_Target,_Container>;
43
44
45 // expose the type of this descriptor to the public
46public:
47 typedef _Target Target;
48 typedef std::vector<Target> TargetVec;
49
50protected:
51 typedef _Container Container;
52 typedef typename Container::iterator iterator;
53
54 typedef DescriptorBase_impl<Target,Container> impl;
55 typedef boost::shared_ptr<impl> impl_ptr;
56
57
58public:
59
60 DescriptorBase();
61 DescriptorBase(const DescriptorBase&);
62 DescriptorBase(impl_ptr);
63 virtual ~DescriptorBase();
64
65 DescriptorBase& operator=(const DescriptorBase&);
66
67 /**
68 * forward Method to implementation
69 */
70 Target find(Container&);
71
72 /**
73 * forward Method to implementation
74 */
75 TargetVec findAll(Container&);
76
77
78private:
79 impl_ptr theImpl;
80};
81
82template<class _Target,
83 class _Container>
84DescriptorBase<_Target,_Container> AllX();
85
86template<class _Target,
87 class _Container>
88DescriptorBase<_Target,_Container> NoX();
89
90template<class _Target,
91 class _Container>
92DescriptorBase<_Target,_Container>
93 operator&&(DescriptorBase<_Target,_Container>&,
94 DescriptorBase<_Target,_Container>&);
95
96template<class _Target,
97 class _Container>
98DescriptorBase<_Target,_Container>
99 operator||(DescriptorBase<_Target,_Container>&,
100 DescriptorBase<_Target,_Container>&);
101
102template<class _Target,
103 class _Container>
104DescriptorBase<_Target,_Container>
105 operator!(DescriptorBase<_Target,_Container>&);
106
107#endif /* DESCRIPTORBASE_HPP_ */
Note: See TracBrowser for help on using the repository browser.