Program Listing for File reach_study_comparison.h

Return to documentation for file (include/reach/reach_study_comparison.h)

#pragma once

#include <reach/types.h>

#include <map>
#include <vector>

namespace reach
{
class ComparisonResult
{
public:
  using mask = std::size_t;

  ComparisonResult(const std::vector<std::size_t> db_indices, const std::map<std::string, mask> reachability_mask_map);

  std::vector<std::string> getReachability(const std::vector<std::size_t>& dbs) const;

  std::vector<std::size_t> getReachability(const std::string& target) const;

  std::string getReachabilityDescriptor(const std::string& target) const;

protected:
  const std::vector<std::size_t> db_indices_;
  const std::map<std::string, mask> reachability_mask_map_;
  const std::map<mask, std::string> mask_names_;
};

ComparisonResult compare(const std::vector<std::string>& db_files);
ComparisonResult compare(const std::vector<ReachResult>& results);

}  // namespace reach