11#ifndef KLEE_QUERYLOGGINGSOLVER_H
12#define KLEE_QUERYLOGGINGSOLVER_H
18#include "llvm/Support/raw_ostream.h"
30 std::unique_ptr<llvm::raw_ostream>
os;
44 const Query *falseQuery = 0,
45 const std::vector<const Array *> *objects = 0);
55 const std::vector<const Array *> *objects = 0) = 0;
69 const std::vector<const Array *> &objects,
70 std::vector<std::vector<unsigned char> > &values,
SolverRunStatus getOperationStatusCode()
getOperationStatusCode - get the status of the last solver operation
virtual ~QueryLoggingSolver()
bool computeTruth(const Query &query, bool &isValid)
implementation of the SolverImpl interface
std::unique_ptr< llvm::raw_ostream > os
virtual void printQuery(const Query &query, const Query *falseQuery=0, const std::vector< const Array * > *objects=0)=0
virtual void startQuery(const Query &query, const char *typeName, const Query *falseQuery=0, const std::vector< const Array * > *objects=0)
time::Span lastQueryDuration
char * getConstraintLog(const Query &)
time::Span minQueryTimeToLog
bool computeValue(const Query &query, ref< Expr > &result)
void setCoreSolverTimeout(time::Span timeout)
const std::string queryCommentSign
llvm::raw_string_ostream logBuffer
bool computeValidity(const Query &query, Solver::Validity &result)
QueryLoggingSolver(Solver *_solver, std::string path, const std::string &commentSign, time::Span queryTimeToLog, bool logTimedOut)
virtual void finishQuery(bool success)
void flushBufferConditionally(bool writeToFile)
bool computeInitialValues(const Query &query, const std::vector< const Array * > &objects, std::vector< std::vector< unsigned char > > &values, bool &hasSolution)
SolverImpl - Abstract base clase for solver implementations.