srecord  1.65.0
catenate.h
Go to the documentation of this file.
1 //
2 // srecord - Manipulate EPROM load files
3 // Copyright (C) 2008, 2010, 2011 Peter Miller
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published by
7 // the Free Software Foundation; either version 3 of the License, or (at
8 // your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public License
16 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 //
18 
19 #ifndef SRECORD_INPUT_CATENATE_H
20 #define SRECORD_INPUT_CATENATE_H
21 
22 #include <srecord/input.h>
23 
24 namespace srecord {
25 
26 /**
27  * The srecord::input_catenate class is used to represent an input source
28  * which presents two inoput sources as if they were a single input
29  * source.
30  */
32  public input
33 {
34 public:
35  /**
36  * The destructor.
37  */
38  virtual ~input_catenate();
39 
40 private:
41  /**
42  * The constructor.
43  * It is private on purpose, use the #create class method instead.
44  *
45  * @param in1
46  * The first of the inputs to be read.
47  * @param in2
48  * The second of the inputs to be read.
49  */
50  input_catenate(const pointer &in1, const pointer &in2);
51 
52 public:
53  /**
54  * The create class method is used to create new dynamically
55  * allocated instances of this class.
56  *
57  * @param in1
58  * The first of the inputs to be read.
59  * @param in2
60  * The second of the inputs to be read.
61  */
62  static pointer create(const pointer &in1, const pointer &in2);
63 
64 protected:
65  // See base class for documentation.
66  bool read(record &record);
67 
68  // See base class for documentation.
69  std::string filename() const;
70 
71  // See base class for documentation.
72  std::string filename_and_line() const;
73 
74  // See base class for documentation.
75  const char *get_file_format_name() const;
76 
77  // See base class for documentation.
79 
80 private:
81  /**
82  * The in1 instance variable is used to remember the first of the
83  * inputs to be read.
84  */
85  pointer in1;
86 
87  /**
88  * The in2 instance variable is used to remember the second of the
89  * inputs to be read.
90  */
91  pointer in2;
92 
93  /**
94  * The default constructor. Do not use.
95  */
97 
98  /**
99  * The copy constructor. Do not use.
100  */
102 
103  /**
104  * The assignment operator. Do not use.
105  */
106  input_catenate &operator=(const input_catenate &);
107 };
108 
109 };
110 
111 // vim: set ts=8 sw=4 et :
112 #endif // SRECORD_INPUT_CATENATE_H
The srecord::input_catenate class is used to represent an input source which presents two inoput sour...
Definition: catenate.h:33
virtual ~input_catenate()
The destructor.
bool read(record &record)
The read method is used to read one record from the input.
const char * get_file_format_name() const
The get_file_format_name method is used to find out the name of the file format being read.
std::string filename_and_line() const
The filename_and_line method is used to get the name and current line number within the file.
void disable_checksum_validation()
The disable_checksum_validation method is used to have this input stream ignore checksum errors.
std::string filename() const
The filename method is used to get the name of the input file being processed.
static pointer create(const pointer &in1, const pointer &in2)
The create class method is used to create new dynamically allocated instances of this class.
The srecord::input class is used to represent an abstract EPROM load file source.
Definition: input.h:39
std::shared_ptr< input > pointer
Definition: input.h:41
The srecord::record class is used to represent a data record read from a file.
Definition: record.h:35