| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // -*- Mode: C++ -*- |
| // |
| // Copyright (C) 2013-2020 Red Hat, Inc. |
| // |
| // Author: Dodji Seketeli |
| |
| /// @file |
| /// |
| /// This file contains the declarations of the entry points to |
| /// de-serialize an instance of @ref abigail::translation_unit from an |
| /// ABI Instrumentation file in libabigail native XML format. |
| |
| #ifndef __ABG_READER_H__ |
| #define __ABG_READER_H__ |
| |
| #include <istream> |
| #include "abg-corpus.h" |
| #include "abg-suppression.h" |
| |
| namespace abigail |
| { |
| |
| namespace xml_reader |
| { |
| |
| using namespace abigail::ir; |
| |
| translation_unit_sptr |
| read_translation_unit_from_file(const std::string& file_path, |
| environment* env); |
| |
| translation_unit_sptr |
| read_translation_unit_from_buffer(const std::string& file_path, |
| environment* env); |
| |
| translation_unit_sptr |
| read_translation_unit_from_istream(std::istream* in, |
| environment* env); |
| |
| class read_context; |
| |
| /// A convenience typedef for a shared pointer to read_context. |
| typedef shared_ptr<read_context> read_context_sptr; |
| |
| read_context_sptr |
| create_native_xml_read_context(const string& path, environment *env); |
| |
| read_context_sptr |
| create_native_xml_read_context(std::istream* in, environment* env); |
| |
| const string& |
| read_context_get_path(const read_context&); |
| |
| abigail::corpus_sptr |
| read_corpus_from_file(const string& path); |
| |
| int |
| read_corpus_from_file(corpus_sptr& corp, |
| const string& path); |
| |
| int |
| read_corpus_from_file(corpus_sptr& corp); |
| |
| corpus_sptr |
| read_corpus_from_native_xml(std::istream* in, |
| environment* env); |
| |
| corpus_sptr |
| read_corpus_from_native_xml_file(const string& path, |
| environment* env); |
| |
| corpus_sptr |
| read_corpus_from_input(read_context& ctxt); |
| |
| corpus_group_sptr |
| read_corpus_group_from_input(read_context& ctxt); |
| |
| corpus_group_sptr |
| read_corpus_group_from_native_xml(std::istream* in, |
| environment* env); |
| |
| corpus_group_sptr |
| read_corpus_group_from_native_xml_file(const string& path, |
| environment* env); |
| |
| void |
| add_read_context_suppressions(read_context& ctxt, |
| const suppr::suppressions_type& supprs); |
| |
| void |
| consider_types_not_reachable_from_public_interfaces(read_context& ctxt, |
| bool flag); |
| }//end xml_reader |
| }//end namespace abigail |
| |
| #endif // __ABG_READER_H__ |