17 #ifndef IO_HANDLER_GUARD
18 #define IO_HANDLER_GUARD
59 (
const vector<mpz_class>& term,
const VarNames& names, FILE* out);
78 virtual const char*
doGetName()
const = 0;
86 virtual void doWriteTerm(
const vector<mpz_class>& term,
102 auto_ptr<IOHandler>
createOHandler(
const string& input,
const string& output);
auto_ptr< IOHandler > createOHandler(const string &input, const string &output)
Returns an IOHandler for the output format.
virtual BigTermConsumer * doCreateIdealWriter(FILE *out)=0
string autoDetectFormat(Scanner &in)
Return the format of what in is reading based on the first non-whitespace character.
virtual bool doSupportsInput(const DataType &type) const =0
bool supportsInput(const DataType &type) const
virtual const char * doGetName() const =0
Defines the variables of a polynomial ring and facilities IO involving them.
auto_ptr< CoefBigTermConsumer > createPolynomialWriter(FILE *out)
The intention of this class is to describe the different kinds of mathematical structures that Frobby...
bool supportsOutput(const DataType &type) const
auto_ptr< IOHandler > createIOHandler(const string &prefix)
Returns an IOHandler for the format whose name has the given prefix.
virtual bool doHasMoreInput(Scanner &in) const =0
void getIOHandlerNames(vector< string > &names)
Add the name of each fomat to names.
This class offers an input interface which is more convenient and for some purposes more efficient th...
const char * getName() const
virtual void doReadPolynomial(Scanner &in, CoefBigTermConsumer &consumer)=0
void readIdeals(Scanner &in, InputConsumer &consumer)
Read a number of ideals and feed them to the consumer.
string getFormatNameIndicatingToUseInputFormatAsOutputFormat()
Using the returned string in place of an (output) format name indicates to use the input format as th...
virtual void doReadTerm(Scanner &in, InputConsumer &consumer)=0
const char * getDescription() const
virtual void doReadIdeal(Scanner &in, InputConsumer &consumer)=0
virtual bool doSupportsOutput(const DataType &type) const =0
void readTerm(Scanner &in, const VarNames &names, vector< mpz_class > &term)
void writeTerm(const vector< mpz_class > &term, const VarNames &names, FILE *out)
An IOHandler implements input and output for some format in such a way that client code does not need...
virtual void doWriteTerm(const vector< mpz_class > &term, const VarNames &names, FILE *out)=0
bool hasMoreInput(Scanner &in) const
virtual CoefBigTermConsumer * doCreatePolynomialWriter(FILE *out)=0
void readIdeal(Scanner &in, InputConsumer &consumer)
Read an ideal and feed it to the consumer.
virtual void doReadSatBinomIdeal(Scanner &in, SatBinomConsumer &consumer)=0
void readPolynomial(Scanner &in, CoefBigTermConsumer &consumer)
virtual void doReadIdeals(Scanner &in, InputConsumer &consumer)=0
auto_ptr< BigTermConsumer > createIdealWriter(FILE *out)
void readSatBinomIdeal(Scanner &in, SatBinomConsumer &consumer)
void readFrobeniusInstance(Scanner &in, vector< mpz_class > &numbers)
auto_ptr< BigTermConsumer > createIdealListWriter(FILE *out)
virtual const char * doGetDescription() const =0
Term represents a product of variables which does not include a coefficient.
string getFormatNameIndicatingToGuessTheInputFormat()
Using the returned string in place of an (input) format name indicates to guess the format based on w...