srecord  1.65.0
stewie.h
Go to the documentation of this file.
1 //
2 // srecord - manipulate eprom load files
3 // Copyright (C) 1998-2000, 2002-2004, 2006-2008, 2010, 2011, 2013 Peter Miller
4 //
5 // This program is free software; you can redistribute it and/or modify it
6 // 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 your
8 // option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful, but WITHOUT
11 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
13 // 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 LIB_INPUT_FILE_STEWIE_H
20 #define LIB_INPUT_FILE_STEWIE_H
21 
22 #include <srecord/input/file.h>
23 
24 namespace srecord {
25 
26 /**
27  * The srecord::input_file_stewie class is used to represent the parse
28  * state of an input file in an undocumented binary format loosely
29  * based on the Motorola format.
30  */
32  public input_file
33 {
34 public:
35  /**
36  * The destructor.
37  */
38  virtual ~input_file_stewie();
39 
40  /**
41  * The create class method is used to create new dynamically
42  * allocated instances of this class.
43  *
44  * @param file_name
45  * The name of the file to be read.
46  * @returns
47  * smart pointer to new instance
48  */
49  static pointer create(const std::string &file_name);
50 
51 protected:
52  // See base class for documentation.
53  bool read(record &record);
54 
55  // See base class for documentation.
56  const char *get_file_format_name(void) const;
57 
58  // See base class for documentation.
59  bool is_binary(void) const;
60 
61  // See base class for documentation.
62  int get_byte(void);
63 
64  // See base class for documentation.
65  int format_option_number(void) const;
66 
67 private:
68  /**
69  * The constructor.
70  *
71  * @param file_name
72  * The name of the file to be read.
73  */
74  input_file_stewie(const std::string &file_name);
75 
76  /**
77  * The data_count instance variable is used to remember the number
78  * of data lines has occurred so far in the input file.
79  */
80  unsigned long data_count;
81 
82  /**
83  * The read_inner method is used to read a record of input.
84  * The read method is a wrapper around this method.
85  */
86  bool read_inner(record &);
87 
88  /**
89  * The garbage_warning instance variable is used to remember whether
90  * or not a warning about garbage input lines has been issued yet.
91  */
92  bool garbage_warning;
93 
94  /**
95  * The seen_some_input instance variable is used to remember where
96  * any data has been seen in this file yet.
97  */
98  bool seen_some_input;
99 
100  /**
101  * The header_seen instance variable is used to remember whether
102  * or not the header record has been seen yet.
103  */
104  bool header_seen;
105 
106  /**
107  * The termination_seen instance variable is used to remember
108  * whether or not the termination record has been seen yet.
109  */
110  bool termination_seen;
111 
112  /**
113  * The default constructor. Do not use.
114  */
116 
117  /**
118  * The copy constructor. Do not use.
119  */
121 
122  /**
123  * The assignment operator. Do not use.
124  */
125  input_file_stewie &operator=(const input_file_stewie &);
126 };
127 
128 };
129 
130 #endif // LIB_INPUT_FILE_STEWIE_H
131 // vim: set ts=8 sw=4 et :
The srecord::input_file_stewie class is used to represent the parse state of an input file in an undo...
Definition: stewie.h:33
bool read(record &record)
The read method is used to read one record from the input.
int format_option_number(void) const
The format_option_number method is used to obtain the option number, which can then be turned into te...
const char * get_file_format_name(void) const
The get_file_format_name method is used to find out the name of the file format being read.
static pointer create(const std::string &file_name)
The create class method is used to create new dynamically allocated instances of this class.
virtual ~input_file_stewie()
The destructor.
int get_byte(void)
The get_byte method is used to fetch a byte value from the input.
bool is_binary(void) const
The is_binary method is used to to determine whether or not a file format is binary (true) of text (f...
The srecord::input_file class is used to represent an generic input file.
Definition: file.h:37
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