// SPDX-License-Identifier: LGPL-3.0-or-later // -*- 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 #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_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__