The srecord::input_filter_checksum class is an abstraction of various checksums to be ammplied to input sources. More...
#include <checksum.h>
Public Member Functions | |
virtual | ~input_filter_checksum () |
The destructor. | |
![]() | |
virtual | ~input_filter () |
The destructor. | |
std::string | filename () const |
The filename method is used to get the name of the input file being processed. | |
std::string | filename_and_line () const |
The filename_and_line method is used to get the name and current line number within the file. | |
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. | |
void | disable_checksum_validation () |
The disable_checksum_validation method is used to have this input stream ignore checksum errors. | |
![]() | |
virtual | ~input () |
The destructor. | |
virtual void | fatal_error (const char *,...) const FORMAT_PRINTF(2 |
The fatal_error method is used to report problems parsing the file. | |
virtual void virtual void | fatal_error_errno (const char *,...) const FORMAT_PRINTF(2 |
The fatal_error_errno method is used to report problems reading the input file. | |
virtual void virtual void virtual void | warning (const char *,...) const FORMAT_PRINTF(2 |
The warning method is used to report potential (but non-fatal) problems parsing the file. | |
void | set_quit (quit &) |
The set_quit method is used to set the disposition of the error messages, and the "exit" implementation. | |
void | reset_quit (void) |
The reset_quit method is used to cause the disposition of the error messages, and the "exit" back to the default. | |
virtual void | command_line (srecord::arglex_tool *cmdln) |
The command_line method is used by arglex_srec::get_input when parsing the command line, to give a format or filter an opportunity to grab extra arguments off the command line. | |
Protected Types | |
typedef unsigned long | sum_t |
Protected Member Functions | |
bool | read (record &record) |
The read method is used to read one record from the input. | |
input_filter_checksum (input::pointer deeper, int address, int length, endian_t end, int width=1) | |
The constructor. | |
virtual sum_t | calculate (void)=0 |
The calculate method is used to calculate the checksum to be written into the output, based on the "sum" instance variable. | |
bool | generate (record &record) |
The generate method is used to generate the final data record, once all of the deeper input has been passed through, based on the calculated checksum. | |
![]() | |
input_filter (input::pointer deeper) | |
The constructor. | |
![]() | |
input () | |
The default constructor. | |
Protected Attributes | |
int | checksum_address |
The checksum_address instance variable is used to remember where to place the checksum at the end of the data. | |
int | length |
The length instance variable is used to remember how many bytes of checksum are to be emitted. | |
endian_t | end |
The end instance variable is used to remember whether the summation for the checksum is bigendian or little endian. | |
sum_t | sum |
The sum instance variable is used to remember the running checksum of the incoming data source. | |
int | width |
The width instance variable is used to remember the swathe width as the incoming bytes are added to the running sum. | |
![]() | |
pointer | ifp |
Additional Inherited Members | |
![]() | |
typedef std::shared_ptr< input > | pointer |
The srecord::input_filter_checksum class is an abstraction of various checksums to be ammplied to input sources.
Definition at line 35 of file checksum.h.
|
protected |
Definition at line 69 of file checksum.h.
|
virtual |
The destructor.
|
protected |
The constructor.
May only be called by derived classes.
deeper | The deeper input source being checksummed. |
address | The address to place the checksum. |
length | The number of bytes of checksum to be placed into the result. |
end | The byte order |
width | The width of the values being summed. Usually 1 byte, but wider combinations are possible. If you use something wider, it is assumed that they are alligned on multiples of that width, no provision for an offset is provided. |
References end, length, and width.
Referenced by generate().
|
protectedvirtual |
The read method is used to read one record from the input.
It returns 0 at the end of the input, and 1 if a record is read successfully.
See the srecord::record documentation (header file) for details of the various record types.
Note: there is no guarantee that a header record will appear first, or that a execution start address record will appear last.
rec | Where to put the returned data. |
Reimplemented from srecord::input_filter.
|
protectedpure virtual |
The calculate method is used to calculate the checksum to be written into the output, based on the "sum" instance variable.
Implemented in srecord::input_filter_checksum_bitnot, srecord::input_filter_checksum_negative, and srecord::input_filter_checksum_positive.
|
protected |
The generate method is used to generate the final data record, once all of the deeper input has been passed through, based on the calculated checksum.
record | Where to place the returned data. |
References input_filter_checksum().
|
protected |
The checksum_address instance variable is used to remember where to place the checksum at the end of the data.
Definition at line 75 of file checksum.h.
|
protected |
The length instance variable is used to remember how many bytes of checksum are to be emitted.
Definition at line 81 of file checksum.h.
Referenced by srecord::input_filter_checksum_bitnot::create(), srecord::input_filter_checksum_negative::create(), srecord::input_filter_checksum_positive::create(), input_filter_checksum(), srecord::input_filter_checksum_bitnot::~input_filter_checksum_bitnot(), srecord::input_filter_checksum_negative::~input_filter_checksum_negative(), and srecord::input_filter_checksum_positive::~input_filter_checksum_positive().
|
protected |
The end instance variable is used to remember whether the summation for the checksum is bigendian or little endian.
Definition at line 87 of file checksum.h.
Referenced by srecord::input_filter_checksum_bitnot::create(), srecord::input_filter_checksum_negative::create(), srecord::input_filter_checksum_positive::create(), input_filter_checksum(), srecord::input_filter_checksum_bitnot::~input_filter_checksum_bitnot(), srecord::input_filter_checksum_negative::~input_filter_checksum_negative(), and srecord::input_filter_checksum_positive::~input_filter_checksum_positive().
|
protected |
The sum instance variable is used to remember the running checksum of the incoming data source.
Definition at line 93 of file checksum.h.
|
protected |
The width instance variable is used to remember the swathe width as the incoming bytes are added to the running sum.
That is, now many bytes wide.
Definition at line 100 of file checksum.h.
Referenced by srecord::input_filter_checksum_bitnot::create(), srecord::input_filter_checksum_negative::create(), srecord::input_filter_checksum_positive::create(), input_filter_checksum(), srecord::input_filter_checksum_bitnot::~input_filter_checksum_bitnot(), srecord::input_filter_checksum_negative::~input_filter_checksum_negative(), and srecord::input_filter_checksum_positive::~input_filter_checksum_positive().