source: ThirdParty/JobMarket/src/JobMarket/Results/FragmentResult.hpp@ dde50d

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