1#ifndef ROSE_BinaryAnalysis_Concolic_Specimen_H
2#define ROSE_BinaryAnalysis_Concolic_Specimen_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_CONCOLIC_TESTING
5#include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
7#include <boost/filesystem.hpp>
9#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10#include <boost/serialization/access.hpp>
11#include <boost/serialization/nvp.hpp>
14#include <Sawyer/SharedObject.h>
15#include <Sawyer/SharedPointer.h>
20namespace BinaryAnalysis {
33 typedef std::vector<uint8_t> BinaryData;
36 mutable SAWYER_THREAD_TRAITS::Mutex mutex_;
38 std::string timestamp_;
40 mutable bool read_only_;
44 friend class boost::serialization::access;
48 s & BOOST_SERIALIZATION_NVP(name_);
49 s & BOOST_SERIALIZATION_NVP(content_);
50 s & BOOST_SERIALIZATION_NVP(empty_);
61 static Ptr instance(
const boost::filesystem::path &executableName);
62 static Ptr instance();
71 void open(
const boost::filesystem::path &executableName);
96 std::string name()
const;
97 void name(
const std::string&);
105 std::string printableName(
const DatabasePtr &db = DatabasePtr());
108 void toYaml(std::ostream&,
const DatabasePtr&, std::string prefix);
120 std::string timestamp()
const;
121 void timestamp(
const std::string&);
130 const std::vector<uint8_t>& content()
const;
136 void content(std::vector<uint8_t> binary_data);
Creates SharedPointer from this.
Base class for reference counted objects.
Reference-counting intrusive smart pointer.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
void serialize(std::ostream &output, Graph &graph)
Serialize a graph into a stream of bytes.