From c286f77f97a3c2711907f81516160f917204dac0 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Thu, 13 Jul 2017 11:07:07 +0200
Subject: [PATCH] add binding for to string composing DFA

---
 alib2str/src/automaton/AutomatonToStringComposer.cpp | 8 ++++++++
 alib2str/src/automaton/AutomatonToStringComposer.h   | 2 ++
 2 files changed, 10 insertions(+)

diff --git a/alib2str/src/automaton/AutomatonToStringComposer.cpp b/alib2str/src/automaton/AutomatonToStringComposer.cpp
index ed609149b9..5d6750640f 100644
--- a/alib2str/src/automaton/AutomatonToStringComposer.cpp
+++ b/alib2str/src/automaton/AutomatonToStringComposer.cpp
@@ -40,7 +40,15 @@ void AutomatonToStringComposer::compose(std::ostream& out, const DFA < SymbolTyp
 	}
 }
 
+template < class SymbolType, class StateType >
+std::string AutomatonToStringComposer::compose ( const DFA < SymbolType, StateType > & automaton ) {
+	std::stringstream ss;
+	compose ( ss, automaton );
+	return ss.str ( );
+}
+
 auto AutomatonToStringComposerDFA = registration::OverloadRegister < AutomatonToStringComposer, void, DFA < > >(AutomatonToStringComposer::compose);
+auto AutomatonToStringComposerDFA2 = registration::AbstractRegister < AutomatonToStringComposer, std::string, const DFA < > & > ( AutomatonToStringComposer::compose );
 auto ObjectToStringComposerDFA = registration::OverloadRegister < alib::ObjectBaseDispatcher, void, DFA < > >( AutomatonToStringComposer::compose);
 
 template < class SymbolType, class StateType >
diff --git a/alib2str/src/automaton/AutomatonToStringComposer.h b/alib2str/src/automaton/AutomatonToStringComposer.h
index cbcd4582a7..3c949f8012 100644
--- a/alib2str/src/automaton/AutomatonToStringComposer.h
+++ b/alib2str/src/automaton/AutomatonToStringComposer.h
@@ -40,6 +40,8 @@ public:
 	template < class SymbolType, class StateType >
 	static void compose(std::ostream& output, const DFA < SymbolType, StateType > & automaton);
 	template < class SymbolType, class StateType >
+	static std::string compose(const DFA < SymbolType, StateType > & automaton);
+	template < class SymbolType, class StateType >
 	static void compose(std::ostream& output, const NFA < SymbolType, StateType > & automaton);
 	template < class SymbolType, class StateType >
 	static void compose(std::ostream& output, const MultiInitialStateNFA < SymbolType, StateType > & automaton);
-- 
GitLab