ROSE  0.11.145.0
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 #include <string>
9 
10 namespace Rose {
11 namespace BinaryAnalysis {
12 namespace Concolic {
13 namespace I386Linux {
14 
16 class ExitStatusResult: public Concolic::ConcreteResult {
17  using Super = Concolic::ConcreteResult;
18 
19 public:
21  using Ptr = ExitStatusResultPtr;
22 
23 protected:
24  int exitStatus_;
25  std::string exitKind_;
26  std::string capturedOut_;
27  std::string capturedErr_;
29 private:
30  friend class boost::serialization::access;
31 
32  template<class S>
33  void serialize(S &s, const unsigned /*version*/) {
34  s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Super);
35  s & BOOST_SERIALIZATION_NVP(exitStatus_);
36  s & BOOST_SERIALIZATION_NVP(exitKind_);
37  s & BOOST_SERIALIZATION_NVP(capturedOut_);
38  s & BOOST_SERIALIZATION_NVP(capturedErr_);
39  }
40 
41 protected:
42  ExitStatusResult(double rank, int exitStatus);
43 
44  // required for boost serialization
45  ExitStatusResult();
46 
47 public:
48  ~ExitStatusResult();
49 
50 public:
52  static Ptr instance(double rank, int exitStatus);
53 
61  int exitStatus() const;
62  void exitStatus(int);
68  std::string out() const;
69  void out(const std::string&);
70 
71  std::string err() const;
72  void err(const std::string&);
78  std::string exitKind() const;
79 };
80 
81 } // namespace
82 } // namespace
83 } // namespace
84 } // namespace
85 
86 #endif
87 #endif
void serialize(std::ostream &output, Graph &graph)
Serialize a graph into a stream of bytes.
Definition: GraphUtility.h:17
Main namespace for the ROSE library.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.