ROSE 0.11.145.247
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#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10#include <boost/serialization/access.hpp>
11#include <boost/serialization/nvp.hpp>
12#endif
13
14#include <string>
15
16namespace Rose {
17namespace BinaryAnalysis {
18namespace Concolic {
19namespace I386Linux {
20
22class ExitStatusResult: public Concolic::ConcreteResult {
23 using Super = Concolic::ConcreteResult;
24
25public:
27 using Ptr = ExitStatusResultPtr;
28
29protected:
30 int exitStatus_;
31 std::string exitKind_;
32 std::string capturedOut_;
33 std::string capturedErr_;
35private:
36 friend class boost::serialization::access;
37
38 template<class S>
39 void serialize(S &s, const unsigned /*version*/) {
40 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Super);
41 s & BOOST_SERIALIZATION_NVP(exitStatus_);
42 s & BOOST_SERIALIZATION_NVP(exitKind_);
43 s & BOOST_SERIALIZATION_NVP(capturedOut_);
44 s & BOOST_SERIALIZATION_NVP(capturedErr_);
45 }
46
47protected:
48 ExitStatusResult(double rank, int exitStatus);
49
50 // required for boost serialization
51 ExitStatusResult();
52
53public:
54 ~ExitStatusResult();
55
56public:
58 static Ptr instance(double rank, int exitStatus);
59
67 int exitStatus() const;
68 void exitStatus(int);
74 std::string out() const;
75 void out(const std::string&);
76
77 std::string err() const;
78 void err(const std::string&);
84 std::string exitKind() const;
85};
86
87} // namespace
88} // namespace
89} // namespace
90} // namespace
91
92#endif
93#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.