ROSE 0.11.145.147
ExitStatusResult.h
1#ifndef ROSE_BinaryAnalysis_Concolic_I386Linux_ExitStatusResult_H
2#define ROSE_BinaryAnalysis_Concolic_I386Linux_ExitStatusResult_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_CONCOLIC_TESTING
5#include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
6
7#include <Rose/BinaryAnalysis/Concolic/ConcreteResult.h>
8
9#include <boost/serialization/access.hpp>
10#include <boost/serialization/nvp.hpp>
11
12#include <string>
13
14namespace Rose {
15namespace BinaryAnalysis {
16namespace Concolic {
17namespace I386Linux {
18
20class ExitStatusResult: public Concolic::ConcreteResult {
21 using Super = Concolic::ConcreteResult;
22
23public:
25 using Ptr = ExitStatusResultPtr;
26
27protected:
28 int exitStatus_;
29 std::string exitKind_;
30 std::string capturedOut_;
31 std::string capturedErr_;
33private:
34 friend class boost::serialization::access;
35
36 template<class S>
37 void serialize(S &s, const unsigned /*version*/) {
38 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Super);
39 s & BOOST_SERIALIZATION_NVP(exitStatus_);
40 s & BOOST_SERIALIZATION_NVP(exitKind_);
41 s & BOOST_SERIALIZATION_NVP(capturedOut_);
42 s & BOOST_SERIALIZATION_NVP(capturedErr_);
43 }
44
45protected:
46 ExitStatusResult(double rank, int exitStatus);
47
48 // required for boost serialization
49 ExitStatusResult();
50
51public:
52 ~ExitStatusResult();
53
54public:
56 static Ptr instance(double rank, int exitStatus);
57
65 int exitStatus() const;
66 void exitStatus(int);
72 std::string out() const;
73 void out(const std::string&);
74
75 std::string err() const;
76 void err(const std::string&);
82 std::string exitKind() const;
83};
84
85} // namespace
86} // namespace
87} // namespace
88} // namespace
89
90#endif
91#endif
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
void serialize(std::ostream &output, Graph &graph)
Serialize a graph into a stream of bytes.
The ROSE library.