File: IOParameters.h

package info (click to toggle)
frobby 0.9.0-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 11,452 kB
  • ctags: 4,203
  • sloc: cpp: 29,249; sh: 1,121; makefile: 272; ansic: 102
file content (59 lines) | stat: -rwxr-xr-x 1,918 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/* Frobby: Software for monomial ideal computations.
   Copyright (C) 2007 Bjarke Hammersholt Roune (www.broune.com)

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see http://www.gnu.org/licenses/.
*/
#ifndef IO_PARAMETERS_GUARD
#define IO_PARAMETERS_GUARD

#include "ParameterGroup.h"
#include "StringParameter.h"
#include "IOHandler.h"

class Scanner;
class DataType;

class IOParameters : public ParameterGroup {
 public:
  IOParameters(const DataType& input, const DataType& output);

  void setOutputFormat(const string& format);
  void setInputFormat(const string& format);

  const string& getInputFormat() const;
  const string& getOutputFormat() const;

  auto_ptr<IOHandler> createInputHandler() const;
  auto_ptr<IOHandler> createOutputHandler() const;

  /** If using the input format, this must be called before validating
   the ideals, since the auto detect format is not a valid format other
   than as a place holder for the auto detected format. If the format
   on in is auto detect, it will (also) be set.
  */
  void autoDetectInputFormat(Scanner& in);

  // Exits with an error message if the input or output format is not
  // known.
  void validateFormats() const;

 private:
  const DataType& _inputType;
  const DataType& _outputType;

  auto_ptr<StringParameter> _inputFormat;
  auto_ptr<StringParameter> _outputFormat;
};

#endif