source: src/Jobs/JobMarket/FragmentResult.hpp@ 184d89

Action_Thermostats Add_AtomRandomPerturbation Add_RotateAroundBondAction Add_SelectAtomByNameAction Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_StructOpt_integration_tests AutomationFragmentation_failures Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator Docu_Python_wait EmpiricalPotential_contain_HomologyGraph_documentation Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph Fix_ChronosMutex Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion GeometryObjects Gui_displays_atomic_force_velocity IndependentFragmentGrids_IntegrationTest JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks RotateToPrincipalAxisSystem_UndoRedo StoppableMakroAction TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps Ubuntu_1604_changes
Last change on this file since 184d89 was dde50d, checked in by Frederik Heber <frederik.heber@…>, 8 years ago

FIX: boost::serialization 1.58 introduced changes which breaks stand-alone compilation for a few headers.

  • there we had to add boost/serialization/serialization.hpp prior to any other serialization header.
  • Property mode set to 100644
File size: 1.9 KB
Line 
1/*
2 * FragmentResult.hpp
3 *
4 * Originally taken from my JobMarket project at 1.1.4.
5 *
6 * Created on: Oct 19, 2011
7 * Author: heber
8 */
9
10#ifndef FRAGMENTRESULT_HPP_
11#define FRAGMENTRESULT_HPP_
12
13// include config.h
14#ifdef HAVE_CONFIG_H
15#include <config.h>
16#endif
17
18
19#include <string>
20
21#include <boost/shared_ptr.hpp>
22#include <boost/serialization/array.hpp>
23#include <boost/serialization/shared_ptr.hpp>
24
25#ifdef HAVE_JOBMARKET
26#include "JobMarket/JobId.hpp"
27#include "JobMarket/types.hpp"
28#else
29#include "Jobs/JobMarket/JobId.hpp"
30#include "Jobs/JobMarket/types.hpp"
31#endif
32
33class FragmentQueueTest;
34class FragmentResultTest;
35
36/** This class contains the result to a specific FragmentJob.
37 *
38 */
39class FragmentResult : public JobId
40{
41 //!> allow FragmentQueue unit test access
42 friend class FragmentQueueTest;
43 //!> allow own unit test access
44 friend class FragmentResultTest;
45public:
46 typedef boost::shared_ptr<FragmentResult> ptr;
47
48 FragmentResult(const JobId_t id);
49 FragmentResult(const JobId_t id, const std::string &_result);
50 FragmentResult(const FragmentResult &other);
51 ~FragmentResult();
52
53 FragmentResult& operator=(const FragmentResult &other);
54 bool operator==(const FragmentResult &other) const;
55 bool operator!=(const FragmentResult &other) const
56 { return !(*this == other); }
57
58 //!> result
59 std::string result;
60
61 //!> exit flag
62 int exitflag;
63
64 //!> time needed for Work()
65 double time_Work;
66
67private:
68 friend class boost::serialization::access;
69 // this is new since boost 1.58 when deserializing vector<FragmentResult>
70 friend class std::vector<FragmentResult, std::allocator<FragmentResult> >;
71
72 /// private default constructor for serialization only.
73 FragmentResult();
74
75 // serialization
76 template <typename Archive>
77 void serialize(Archive& ar, const unsigned int version)
78 {
79 ar & boost::serialization::base_object<JobId>(*this);
80 ar & result;
81 ar & exitflag;
82 ar & time_Work;
83 }
84};
85
86
87#endif /* FRAGMENTRESULT_HPP_ */
Note: See TracBrowser for help on using the repository browser.