| [c3de51] | 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 |  | 
|---|
|  | 33 | class FragmentQueueTest; | 
|---|
|  | 34 | class FragmentResultTest; | 
|---|
|  | 35 |  | 
|---|
|  | 36 | /** This class contains the result to a specific FragmentJob. | 
|---|
|  | 37 | * | 
|---|
|  | 38 | */ | 
|---|
|  | 39 | class FragmentResult : public JobId | 
|---|
|  | 40 | { | 
|---|
|  | 41 | //!> allow FragmentQueue unit test access | 
|---|
|  | 42 | friend class FragmentQueueTest; | 
|---|
|  | 43 | //!> allow own unit test access | 
|---|
|  | 44 | friend class FragmentResultTest; | 
|---|
|  | 45 | public: | 
|---|
|  | 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 |  | 
|---|
|  | 67 | private: | 
|---|
|  | 68 | friend class boost::serialization::access; | 
|---|
|  | 69 |  | 
|---|
|  | 70 | /// private default constructor for serialization only. | 
|---|
|  | 71 | FragmentResult(); | 
|---|
|  | 72 |  | 
|---|
|  | 73 | // serialization | 
|---|
|  | 74 | template <typename Archive> | 
|---|
|  | 75 | void serialize(Archive& ar, const unsigned int version) | 
|---|
|  | 76 | { | 
|---|
|  | 77 | ar & boost::serialization::base_object<JobId>(*this); | 
|---|
|  | 78 | ar & result; | 
|---|
|  | 79 | ar & exitflag; | 
|---|
|  | 80 | ar & time_Work; | 
|---|
|  | 81 | } | 
|---|
|  | 82 | }; | 
|---|
|  | 83 |  | 
|---|
|  | 84 |  | 
|---|
|  | 85 | #endif /* FRAGMENTRESULT_HPP_ */ | 
|---|