DGtal  1.5.beta
MPolynomialReader.ih
1 /**
2  * This program is free software: you can redistribute it and/or modify
3  * it under the terms of the GNU Lesser General Public License as
4  * published by the Free Software Foundation, either version 3 of the
5  * License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program. If not, see <http://www.gnu.org/licenses/>.
14  *
15  **/
16 
17 /**
18  * @file MPolynomialReader.ih
19  * @author Jacques-Olivier Lachaud (\c jacques-olivier.lachaud@univ-savoie.fr )
20  * Laboratory of Mathematics (CNRS, UMR 5807), University of Savoie, France
21  *
22  * @date 2011/07/06
23  *
24  * Implementation of inline methods defined in MPolynomialReader.h
25  *
26  * This file is part of the DGtal library.
27  */
28 
29 
30 //////////////////////////////////////////////////////////////////////////////
31 #include <cstdlib>
32 #include <iomanip>
33 #include <string>
34 //////////////////////////////////////////////////////////////////////////////
35 
36 
37 
38 ///////////////////////////////////////////////////////////////////////////////
39 // Interface - public :
40 
41 /**
42  * Writes/Displays the object on an output stream.
43  * @param out the output stream where the object is written.
44  */
45 template <int n, typename TRing, typename TAlloc, typename TIterator>
46 inline
47 void
48 DGtal::MPolynomialReader<n, TRing, TAlloc, TIterator>::
49 selfDisplay ( std::ostream & out ) const
50 {
51  out << "[MPolynomialReader";
52 }
53 
54 /**
55  * Checks the validity/consistency of the object.
56  * @return 'true' if the object is valid, 'false' otherwise.
57  */
58 template <int n, typename TRing, typename TAlloc, typename TIterator>
59 inline
60 bool
61 DGtal::MPolynomialReader<n, TRing, TAlloc, TIterator>::isValid() const
62 {
63  return true;
64 }
65 
66 
67 
68 ///////////////////////////////////////////////////////////////////////////////
69 // Implementation of inline functions //
70 
71 template <int n, typename TRing, typename TAlloc, typename TIterator>
72 inline
73 std::ostream&
74 DGtal::operator<< ( std::ostream & out,
75  const MPolynomialReader<n, TRing, TAlloc, TIterator> & object )
76 {
77  object.selfDisplay( out );
78  return out;
79 }
80 
81 template < int n, typename TRing, class TAlloc >
82 std::istream&
83 DGtal::operator>> ( std::istream & in,
84  MPolynomial<n,TRing,TAlloc> & aMPolynomial )
85 {
86  typedef std::string::const_iterator ConstIterator;
87  typedef MPolynomialReader<n, TRing, TAlloc, ConstIterator> MyReader;
88  std::string s;
89  getline( in, s );
90  MyReader reader;
91  ConstIterator it = reader.read( aMPolynomial, s.begin(), s.end() );
92  while ( it != s.end() )
93  {
94  in.unget();
95  ++it;
96  }
97 
98  return in;
99 }
100 
101 // //
102 ///////////////////////////////////////////////////////////////////////////////
103 
104