Frobby  0.9.5
CoCoA4IOHandler.h
Go to the documentation of this file.
1 /* Frobby: Software for monomial ideal computations.
2  Copyright (C) 2007 Bjarke Hammersholt Roune (www.broune.com)
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program. If not, see http://www.gnu.org/licenses/.
16 */
17 #ifndef COCOA_4_IO_HANDLER_GUARD
18 #define COCOA_4_IO_HANDLER_GUARD
19 
20 #include "IOHandlerCommon.h"
21 #include <vector>
22 
23 class VarNames;
24 class Scanner;
25 class BigTermConsumer;
27 class InputConsumer;
28 
29 namespace IO {
31  public:
33 
34  static const char* staticGetName();
35 
36  private:
37  virtual BigTermConsumer* doCreateIdealWriter(FILE* out);
39 
40  virtual void doWriteTerm(const vector<mpz_class>& term,
41  const VarNames& names,
42  FILE* out);
43  virtual void doReadTerm(Scanner& in, InputConsumer& consumer);
44  virtual void doReadRing(Scanner& in, VarNames& names);
45  virtual bool doPeekRing(Scanner& in);
46  virtual void doReadBareIdeal(Scanner& in, InputConsumer& consumer);
47  virtual void doReadBarePolynomial(Scanner& in,
48  const VarNames& names,
49  CoefBigTermConsumer& consumer);
50  };
51 }
52 
53 #endif
virtual BigTermConsumer * doCreateIdealWriter(FILE *out)
virtual void doReadBarePolynomial(Scanner &in, const VarNames &names, CoefBigTermConsumer &consumer)
virtual void doReadBareIdeal(Scanner &in, InputConsumer &consumer)
virtual void doReadRing(Scanner &in, VarNames &names)
virtual CoefBigTermConsumer * doCreatePolynomialWriter(FILE *out)
virtual void doReadTerm(Scanner &in, InputConsumer &consumer)
static const char * staticGetName()
virtual bool doPeekRing(Scanner &in)
virtual void doWriteTerm(const vector< mpz_class > &term, const VarNames &names, FILE *out)
This class contains further functionality that makes it more convenient to derive from than IOHandler...
This class offers an input interface which is more convenient and for some purposes more efficient th...
Definition: Scanner.h:50
Defines the variables of a polynomial ring and facilities IO involving them.
Definition: VarNames.h:40