Use -fvisibility=hidden in src/ta/ and src/taalgos/.

* src/ta/Makefile.am, src/taalgos/Makefile.am: Use
$(VISIBILITY_CXXFLAGS).
* src/ta/ta.hh, src/ta/taexplicit.hh, src/ta/taproduct.hh,
src/ta/tgta.hh, src/ta/tgtaexplicit.hh, src/ta/tgtaproduct.hh,
src/taalgos/dotty.hh, src/taalgos/emptinessta.hh,
src/taalgos/minimize.hh, src/taalgos/reachiter.hh,
src/taalgos/statessetbuilder.hh, src/taalgos/stats.hh,
src/taalgos/tgba2ta.hh: Add SPOT_API in front
of all public symbols.
This commit is contained in:
Alexandre Duret-Lutz 2013-06-28 18:39:17 +02:00
parent f53328a8c7
commit cfbd31384f
15 changed files with 57 additions and 59 deletions

View file

@ -1,6 +1,6 @@
## -*- coding: utf-8 -*- ## -*- coding: utf-8 -*-
## Copyright (C) 2010, 2012 Laboratoire de Recherche et Développement ## Copyright (C) 2010, 2012, 2013 Laboratoire de Recherche et
## de l'Epita (LRDE). ## Développement de l'Epita (LRDE).
## ##
## This file is part of Spot, a model checking library. ## This file is part of Spot, a model checking library.
## ##
@ -18,7 +18,7 @@
## along with this program. If not, see <http://www.gnu.org/licenses/>. ## along with this program. If not, see <http://www.gnu.org/licenses/>.
AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS) AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
tadir = $(pkgincludedir)/ta tadir = $(pkgincludedir)/ta

View file

@ -1,5 +1,6 @@
// Copyright (C) 2010, 2012 Laboratoire de Recherche et Developpement // -*- coding: utf-8 -*-
// de l Epita (LRDE). // Copyright (C) 2010, 2012, 2013 Laboratoire de Recherche et
// Developpement de l Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -50,7 +51,7 @@ namespace spot
/// The Testing Automata (TA) were introduced by /// The Testing Automata (TA) were introduced by
/// Henri Hansen, Wojciech Penczek and Antti Valmari /// Henri Hansen, Wojciech Penczek and Antti Valmari
/// in "Stuttering-insensitive automata for on-the-fly detection of livelock /// in "Stuttering-insensitive automata for on-the-fly detection of livelock
/// properties" In Proc. of FMICSÕ02, vol. 66(2) of Electronic Notes in /// properties" In Proc. of FMICSÕ02, vol. 66(2) of Electronic Notes in
/// Theoretical Computer Science.Elsevier. /// Theoretical Computer Science.Elsevier.
/// ///
/// While a TGBA automaton observes the value of the atomic propositions, the /// While a TGBA automaton observes the value of the atomic propositions, the
@ -74,7 +75,7 @@ namespace spot
/// obtained by querying the iterator over the successors of /// obtained by querying the iterator over the successors of
/// a state. /// a state.
class ta class SPOT_API ta
{ {
public: public:

View file

@ -38,7 +38,7 @@ namespace spot
/// Explicit representation of a spot::ta. /// Explicit representation of a spot::ta.
/// \ingroup ta_representation /// \ingroup ta_representation
class ta_explicit : public ta class SPOT_API ta_explicit : public ta
{ {
public: public:
ta_explicit(const tgba* tgba, bdd all_acceptance_conditions, ta_explicit(const tgba* tgba, bdd all_acceptance_conditions,
@ -146,7 +146,7 @@ namespace spot
/// states used by spot::ta_explicit. /// states used by spot::ta_explicit.
/// \ingroup ta_representation /// \ingroup ta_representation
class state_ta_explicit : public spot::state class SPOT_API state_ta_explicit : public spot::state
{ {
#ifndef SWIG #ifndef SWIG
public: public:
@ -241,7 +241,7 @@ namespace spot
}; };
/// Successor iterators used by spot::ta_explicit. /// Successor iterators used by spot::ta_explicit.
class ta_explicit_succ_iterator : public ta_succ_iterator class SPOT_API ta_explicit_succ_iterator : public ta_succ_iterator
{ {
public: public:
ta_explicit_succ_iterator(const state_ta_explicit* s); ta_explicit_succ_iterator(const state_ta_explicit* s);

View file

@ -31,7 +31,7 @@ namespace spot
/// ///
/// This state is in fact a pair of state: the state from the TA /// This state is in fact a pair of state: the state from the TA
/// automaton and that of Kripke structure. /// automaton and that of Kripke structure.
class state_ta_product : public state class SPOT_API state_ta_product : public state
{ {
public: public:
/// \brief Constructor /// \brief Constructor
@ -73,7 +73,7 @@ namespace spot
}; };
/// \brief Iterate over the successors of a product computed on the fly. /// \brief Iterate over the successors of a product computed on the fly.
class ta_succ_iterator_product : public ta_succ_iterator class SPOT_API ta_succ_iterator_product : public ta_succ_iterator
{ {
public: public:
ta_succ_iterator_product(const state_ta_product* s, const ta* t, ta_succ_iterator_product(const state_ta_product* s, const ta* t,
@ -135,7 +135,7 @@ namespace spot
/// \ingroup ta_emptiness_check /// \ingroup ta_emptiness_check
/// \brief A lazy product between a Testing automaton and a Kripke structure. /// \brief A lazy product between a Testing automaton and a Kripke structure.
/// (States are computed on the fly.) /// (States are computed on the fly.)
class ta_product : public ta class SPOT_API ta_product: public ta
{ {
public: public:
/// \brief Constructor. /// \brief Constructor.
@ -208,22 +208,18 @@ namespace spot
}; };
class ta_succ_iterator_product_by_changeset : public ta_succ_iterator_product class SPOT_API ta_succ_iterator_product_by_changeset :
public ta_succ_iterator_product
{ {
public: public:
ta_succ_iterator_product_by_changeset(const state_ta_product* s, ta_succ_iterator_product_by_changeset(const state_ta_product* s,
const ta* t, const kripke* k, bdd changeset); const ta* t, const kripke* k,
bdd changeset);
/// \brief Move to the next successor in the kripke structure
void
next_kripke_dest();
/// \brief Move to the next successor in the Kripke structure
void next_kripke_dest();
}; };
} }
#endif // SPOT_TA_TAPRODUCT_HH #endif // SPOT_TA_TAPRODUCT_HH

View file

@ -1,3 +1,4 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et // Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
@ -57,7 +58,7 @@ namespace spot
/// a state. /// a state.
class tgta : public tgba class SPOT_API tgta : public tgba
{ {
protected: protected:

View file

@ -1,4 +1,5 @@
// Copyright (C) 2010, 2011, 2012 Laboratoire de Recherche et // -*- coding: utf-8 -*-
// Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -34,7 +35,7 @@ namespace spot
/// Explicit representation of a spot::tgta. /// Explicit representation of a spot::tgta.
/// \ingroup ta_representation /// \ingroup ta_representation
class tgta_explicit : public tgta class SPOT_API tgta_explicit : public tgta
{ {
public: public:
tgta_explicit(const tgba* tgba, bdd all_acceptance_conditions, tgta_explicit(const tgba* tgba, bdd all_acceptance_conditions,

View file

@ -1,9 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2011, 2012 Laboratoire de Recherche et Développement // Copyright (C) 2011, 2012, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de Paris
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -33,7 +30,7 @@ namespace spot
{ {
/// \brief A lazy product. (States are computed on the fly.) /// \brief A lazy product. (States are computed on the fly.)
class tgta_product : public tgba_product class SPOT_API tgta_product : public tgba_product
{ {
public: public:
tgta_product(const kripke* left, const tgta* right); tgta_product(const kripke* left, const tgta* right);
@ -47,7 +44,7 @@ namespace spot
}; };
/// \brief Iterate over the successors of a product computed on the fly. /// \brief Iterate over the successors of a product computed on the fly.
class tgta_succ_iterator_product : public tgba_succ_iterator class SPOT_API tgta_succ_iterator_product : public tgba_succ_iterator
{ {
public: public:
tgta_succ_iterator_product(const state_product* s, const kripke* k, tgta_succ_iterator_product(const state_product* s, const kripke* k,

View file

@ -1,6 +1,6 @@
## -*- coding: utf-8 -*- ## -*- coding: utf-8 -*-
## Copyright (C) 2010, 2012 Laboratoire de Recherche et Développement ## Copyright (C) 2010, 2012, 2013 Laboratoire de Recherche et
## de l'Epita (LRDE). ## Développement de l'Epita (LRDE).
## ##
## This file is part of Spot, a model checking library.et Marie Curie. ## This file is part of Spot, a model checking library.et Marie Curie.
## ##
@ -19,7 +19,7 @@
AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS) AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
taalgosdir = $(pkgincludedir)/taalgos taalgosdir = $(pkgincludedir)/taalgos

View file

@ -1,5 +1,6 @@
// Copyright (C) 2010 Laboratoire de Recherche et Developpement // -*- coding: utf-8 -*-
// de l Epita (LRDE). // Copyright (C) 2010, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -26,7 +27,7 @@ namespace spot
{ {
class ta; class ta;
std::ostream& SPOT_API std::ostream&
dotty_reachable(std::ostream& os, const ta* a); dotty_reachable(std::ostream& os, const ta* a);
} }

View file

@ -85,7 +85,7 @@ namespace spot
/// between a TA and a Kripke structure /// between a TA and a Kripke structure
/// ///
/// See the paper cited above. /// See the paper cited above.
class ta_check : public ec_statistics class SPOT_API ta_check : public ec_statistics
{ {
public: public:
ta_check(const ta_product* a, option_map o = option_map()); ta_check(const ta_product* a, option_map o = option_map());

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2010, 2011, 2012 Laboratoire de Recherche et // Copyright (C) 2009, 2010, 2011, 2012, 2013 Laboratoire de Recherche
// Développement de l'Epita (LRDE). // et Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -56,7 +56,7 @@ namespace spot
\endverbatim */ \endverbatim */
/// ///
/// \param ta_ the TA automaton to convert into a simplified TA /// \param ta_ the TA automaton to convert into a simplified TA
ta* SPOT_API ta*
minimize_ta(const ta* ta_); minimize_ta(const ta* ta_);
@ -70,7 +70,7 @@ namespace spot
/// the acceptance conditions of the outgoing transitions. /// the acceptance conditions of the outgoing transitions.
/// ///
/// \param tgta_ the TGTA automaton to convert into a simplified TGTA /// \param tgta_ the TGTA automaton to convert into a simplified TGTA
tgta_explicit* SPOT_API tgta_explicit*
minimize_tgta(const tgta_explicit* tgta_); minimize_tgta(const tgta_explicit* tgta_);
/// @} /// @}

View file

@ -29,7 +29,7 @@ namespace spot
{ {
/// \ingroup ta_generic /// \ingroup ta_generic
/// \brief Iterate over all reachable states of a spot::ta. /// \brief Iterate over all reachable states of a spot::ta.
class ta_reachable_iterator class SPOT_API ta_reachable_iterator
{ {
public: public:
ta_reachable_iterator(const ta* a); ta_reachable_iterator(const ta* a);
@ -97,7 +97,8 @@ namespace spot
/// \ingroup ta_generic /// \ingroup ta_generic
/// \brief An implementation of spot::ta_reachable_iterator that browses /// \brief An implementation of spot::ta_reachable_iterator that browses
/// states depth first. /// states depth first.
class ta_reachable_iterator_depth_first : public ta_reachable_iterator class SPOT_API ta_reachable_iterator_depth_first
: public ta_reachable_iterator
{ {
public: public:
ta_reachable_iterator_depth_first(const ta* a); ta_reachable_iterator_depth_first(const ta* a);
@ -114,7 +115,8 @@ namespace spot
/// \ingroup ta_generic /// \ingroup ta_generic
/// \brief An implementation of spot::ta_reachable_iterator that browses /// \brief An implementation of spot::ta_reachable_iterator that browses
/// states breadth first. /// states breadth first.
class ta_reachable_iterator_breadth_first : public ta_reachable_iterator class SPOT_API ta_reachable_iterator_breadth_first
: public ta_reachable_iterator
{ {
public: public:
ta_reachable_iterator_breadth_first(const ta* a); ta_reachable_iterator_breadth_first(const ta* a);

View file

@ -1,4 +1,5 @@
// Copyright (C) 2010 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// Copyright (C) 2010, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -25,7 +26,7 @@ namespace spot
{ {
/// \brief Compute states set for an automaton. /// \brief Compute states set for an automaton.
std::set<const state*> get_states_set(const ta* t); SPOT_API std::set<const state*> get_states_set(const ta* t);
/// @} /// @}
} }

View file

@ -1,8 +1,6 @@
// Copyright (C) 2008 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -31,7 +29,7 @@ namespace spot
/// \addtogroup ta_misc /// \addtogroup ta_misc
/// @{ /// @{
struct ta_statistics struct SPOT_API ta_statistics
{ {
unsigned transitions; unsigned transitions;
unsigned states; unsigned states;
@ -41,7 +39,7 @@ namespace spot
}; };
/// \brief Compute statistics for an automaton. /// \brief Compute statistics for an automaton.
ta_statistics stats_reachable(const ta* t); SPOT_API ta_statistics stats_reachable(const ta* t);
/// @} /// @}
} }

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2010, 2012 Laboratoire de Recherche et Développement // Copyright (C) 2010, 2012, 2013 Laboratoire de Recherche et
// de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -79,7 +79,7 @@ namespace spot
/// ///
/// \return A spot::ta_explicit that recognizes the same language as the /// \return A spot::ta_explicit that recognizes the same language as the
/// TGBA \a tgba_to_convert. /// TGBA \a tgba_to_convert.
ta_explicit* SPOT_API ta_explicit*
tgba_to_ta(const tgba* tgba_to_convert, bdd atomic_propositions_set, tgba_to_ta(const tgba* tgba_to_convert, bdd atomic_propositions_set,
bool degeneralized = true, bool artificial_initial_state_mode = true, bool degeneralized = true, bool artificial_initial_state_mode = true,
bool single_pass_emptiness_check = false, bool single_pass_emptiness_check = false,
@ -94,7 +94,7 @@ namespace spot
/// ///
/// \return A spot::tgta_explicit (spot::tgta) that recognizes the same /// \return A spot::tgta_explicit (spot::tgta) that recognizes the same
/// language as the TGBA \a tgba_to_convert. /// language as the TGBA \a tgba_to_convert.
tgta_explicit* SPOT_API tgta_explicit*
tgba_to_tgta(const tgba* tgba_to_convert, bdd atomic_propositions_set); tgba_to_tgta(const tgba* tgba_to_convert, bdd atomic_propositions_set);
} }