KiCad PCB EDA Suite
|
An abstract class from which implementation specific LINE_READERs may be derived to read single lines of text and manage a line number counter. More...
#include <richio.h>
Public Member Functions | |
LINE_READER (unsigned aMaxLineLength=LINE_READER_LINE_DEFAULT_MAX) | |
Build a line reader and fixes the length of the maximum supported line length to aMaxLineLength. | |
virtual | ~LINE_READER () |
virtual char * | ReadLine ()=0 |
Read a line of text into the buffer and increments the line number counter. | |
virtual const wxString & | GetSource () const |
Returns the name of the source of the lines in an abstract sense. | |
char * | Line () const |
Return a pointer to the last line that was read in. | |
operator char * () const | |
A casting operator that returns a char* pointer to the start of the line buffer. | |
virtual unsigned | LineNumber () const |
Return the line number of the last line read from this LINE_READER. | |
unsigned | Length () const |
Return the number of bytes in the last line read from this LINE_READER. | |
Protected Member Functions | |
void | expandCapacity (unsigned aNewsize) |
Will expand the capacity of line up to maxLineLength but not greater, so be careful about making assumptions of capacity after calling this. | |
Protected Attributes | |
unsigned | m_length |
no. bytes in line before trailing nul. | |
unsigned | m_lineNum |
char * | m_line |
the read line of UTF8 text | |
unsigned | m_capacity |
no. bytes allocated for line. | |
unsigned | m_maxLineLength |
maximum allowed capacity using resizing. | |
wxString | m_source |
origin of text lines, e.g. filename or "clipboard" | |
An abstract class from which implementation specific LINE_READERs may be derived to read single lines of text and manage a line number counter.
LINE_READER::LINE_READER | ( | unsigned | aMaxLineLength = LINE_READER_LINE_DEFAULT_MAX | ) |
Build a line reader and fixes the length of the maximum supported line length to aMaxLineLength.
Definition at line 136 of file richio.cpp.
References LINE_READER_LINE_INITIAL_SIZE, m_capacity, and m_line.
|
virtual |
Definition at line 159 of file richio.cpp.
References m_line.
|
protected |
Will expand the capacity of line up to maxLineLength but not greater, so be careful about making assumptions of capacity after calling this.
Definition at line 165 of file richio.cpp.
References m_capacity, m_length, m_line, and m_maxLineLength.
Referenced by FILE_LINE_READER::ReadLine(), STRING_LINE_READER::ReadLine(), and INPUTSTREAM_LINE_READER::ReadLine().
|
inlinevirtual |
Returns the name of the source of the lines in an abstract sense.
This may be a file or it may be the clipboard or any other source of lines of text. The returned string is useful for reporting error messages.
Reimplemented in FILTER_READER, and WHITESPACE_FILTER_READER.
Definition at line 121 of file richio.h.
Referenced by PCB_IO_KICAD_LEGACY::biuParse(), PCB_IO_KICAD_LEGACY::degParse(), WRLPROC::GetFileName(), FILTER_READER::GetSource(), WHITESPACE_FILTER_READER::GetSource(), PCB_IO_KICAD_LEGACY::getVersion(), CMP_READER::Load(), LEGACY_NETLIST_READER::loadComponent(), LEGACY_NETLIST_READER::loadFootprintFilters(), LEGACY_NETLIST_READER::loadNet(), PCB_IO_KICAD_LEGACY::loadPAD(), SCH_IO_KICAD_LEGACY_LIB_CACHE::LoadPart(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadPin(), PCB_IO_KICAD_LEGACY::loadSETUP(), SCH_IO_KICAD_LEGACY::loadSymbol(), GPCB_FPL_CACHE::parseFOOTPRINT(), and WRLPROC::WRLPROC().
|
inline |
Return the number of bytes in the last line read from this LINE_READER.
Definition at line 155 of file richio.h.
Referenced by LEGACY_NETLIST_READER::loadComponent(), LEGACY_NETLIST_READER::loadFootprintFilters(), LEGACY_NETLIST_READER::loadNet(), FILTER_READER::ReadLine(), and WHITESPACE_FILTER_READER::ReadLine().
|
inline |
Return a pointer to the last line that was read in.
Definition at line 129 of file richio.h.
Referenced by bench_string_lr(), bench_string_lr_reuse(), bench_wxbis(), bench_wxbis_reuse(), bench_wxis(), bench_wxis_reuse(), PCB_IO_KICAD_LEGACY::biuParse(), PCB_IO_KICAD_LEGACY::CanReadFootprint(), PCB_IO_KICAD_LEGACY::degParse(), PCB_IO_KICAD_LEGACY::getVersion(), NETLIST_READER::GuessNetlistFileType(), PCB_IO_GEDA::ImportFootprint(), SCH_IO_KICAD_LEGACY_LIB_CACHE::Load(), CMP_READER::Load(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadAliases(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), SCH_IO_KICAD_LEGACY::loadBitmap(), SCH_IO_KICAD_LEGACY::loadBusAlias(), SCH_IO_KICAD_LEGACY::loadBusEntry(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadCircle(), SCH_IO_KICAD_LEGACY::LoadContent(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadDocs(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadDrawEntries(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadField(), SCH_IO_KICAD_LEGACY::loadFile(), EXCELLON_IMAGE::LoadFile(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadFootprintFilters(), PCB_IO_KICAD_LEGACY::loadFP_SHAPE(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadHeader(), SCH_IO_KICAD_LEGACY::loadHeader(), SCH_IO_KICAD_LEGACY::loadJunction(), BITMAP_BASE::LoadLegacyData(), PCB_IO_KICAD_LEGACY::loadMODULE_TEXT(), LP_CACHE::LoadModules(), LEGACY_NETLIST_READER::LoadNetlist(), SCH_IO_KICAD_LEGACY::loadNoConnect(), SCH_IO_KICAD_LEGACY::loadPageSettings(), SCH_IO_KICAD_LEGACY_LIB_CACHE::LoadPart(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadPin(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadPolyLine(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadRect(), SCH_IO_KICAD_LEGACY::loadSymbol(), SCH_IO_KICAD_LEGACY::loadText(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadText(), PCB_IO_KICAD_LEGACY::loadTrackList(), SCH_IO_KICAD_LEGACY::loadWire(), GPCB_FPL_CACHE::parseParameters(), DSNLEXER::PopReader(), SCH_EDITOR_CONTROL::processCmpToFootprintLinkFile(), MWAVE_POLYGONAL_SHAPE_DLG::ReadDataShapeDescr(), FILTER_READER::ReadLine(), SafeReadFile(), LP_CACHE::SkipIndex(), EXCELLON_IMAGE::TestFileIsExcellon(), and GERBER_FILE_IMAGE::TestFileIsRS274().
|
inlinevirtual |
Return the line number of the last line read from this LINE_READER.
Lines start from 1.
Reimplemented in FILTER_READER, and WHITESPACE_FILTER_READER.
Definition at line 147 of file richio.h.
Referenced by PCB_IO_KICAD_LEGACY::biuParse(), SCH_IO_KICAD_LEGACY::checkpoint(), SCH_IO_KICAD_SEXPR_PARSER::checkpoint(), PCB_IO_KICAD_LEGACY::checkpoint(), PCB_IO_KICAD_LEGACY::degParse(), FILTER_READER::LineNumber(), WHITESPACE_FILTER_READER::LineNumber(), CMP_READER::Load(), LEGACY_NETLIST_READER::loadComponent(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadDocs(), LEGACY_NETLIST_READER::loadFootprintFilters(), PCB_IO_KICAD_LEGACY::loadFP_SHAPE(), LEGACY_NETLIST_READER::loadNet(), PCB_IO_KICAD_LEGACY::loadPAD(), SCH_IO_KICAD_LEGACY_LIB_CACHE::LoadPart(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadPin(), PCB_IO_KICAD_LEGACY::loadSHEET(), SCH_IO_KICAD_LEGACY::loadSymbol(), and GPCB_FPL_CACHE::parseFOOTPRINT().
|
inline |
|
pure virtual |
Read a line of text into the buffer and increments the line number counter.
If the line is larger than the maximum length passed to the constructor, then an exception is thrown. The line is nul terminated.
IO_ERROR | when a line is too long. |
Implemented in BLOB_READER, FILTER_READER, WHITESPACE_FILTER_READER, FILE_LINE_READER, STRING_LINE_READER, INPUTSTREAM_LINE_READER, and STDISTREAM_LINE_READER.
Referenced by PCB_IO_KICAD_LEGACY::getVersion(), NETLIST_READER::GuessNetlistFileType(), CMP_READER::Load(), SCH_IO_KICAD_LEGACY::loadBitmap(), SCH_IO_KICAD_LEGACY::loadBusEntry(), SCH_IO_KICAD_LEGACY::LoadContent(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadDrawEntries(), LEGACY_NETLIST_READER::loadFootprintFilters(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadFootprintFilters(), SCH_IO_KICAD_LEGACY::loadHeader(), BITMAP_BASE::LoadLegacyData(), LP_CACHE::LoadModules(), LEGACY_NETLIST_READER::LoadNetlist(), SCH_IO_KICAD_LEGACY::loadPageSettings(), SCH_IO_KICAD_LEGACY_LIB_CACHE::LoadPart(), SCH_IO_KICAD_LEGACY::loadSheet(), SCH_IO_KICAD_LEGACY::loadSymbol(), SCH_IO_KICAD_LEGACY::loadText(), SCH_IO_KICAD_LEGACY::loadWire(), GPCB_FPL_CACHE::parseFOOTPRINT(), GPCB_FPL_CACHE::parseParameters(), LP_CACHE::ReadAndVerifyHeader(), FILTER_READER::ReadLine(), WHITESPACE_FILTER_READER::ReadLine(), and LP_CACHE::SkipIndex().
|
protected |
no. bytes allocated for line.
Definition at line 171 of file richio.h.
Referenced by expandCapacity(), LINE_READER(), FILE_LINE_READER::ReadLine(), STRING_LINE_READER::ReadLine(), and INPUTSTREAM_LINE_READER::ReadLine().
|
protected |
no. bytes in line before trailing nul.
Definition at line 167 of file richio.h.
Referenced by expandCapacity(), BLOB_READER::ReadLine(), FILTER_READER::ReadLine(), WHITESPACE_FILTER_READER::ReadLine(), FILE_LINE_READER::ReadLine(), STRING_LINE_READER::ReadLine(), INPUTSTREAM_LINE_READER::ReadLine(), and STDISTREAM_LINE_READER::ReadLine().
|
protected |
the read line of UTF8 text
Definition at line 170 of file richio.h.
Referenced by BLOB_READER::BLOB_READER(), expandCapacity(), FILTER_READER::FILTER_READER(), LINE_READER(), BLOB_READER::ReadLine(), FILTER_READER::ReadLine(), WHITESPACE_FILTER_READER::ReadLine(), FILE_LINE_READER::ReadLine(), STRING_LINE_READER::ReadLine(), INPUTSTREAM_LINE_READER::ReadLine(), STDISTREAM_LINE_READER::ReadLine(), STDISTREAM_LINE_READER::STDISTREAM_LINE_READER(), WHITESPACE_FILTER_READER::WHITESPACE_FILTER_READER(), FILTER_READER::~FILTER_READER(), ~LINE_READER(), STDISTREAM_LINE_READER::~STDISTREAM_LINE_READER(), and WHITESPACE_FILTER_READER::~WHITESPACE_FILTER_READER().
|
protected |
Definition at line 168 of file richio.h.
Referenced by BLOB_READER::BLOB_READER(), FILE_LINE_READER::FILE_LINE_READER(), BLOB_READER::ReadLine(), FILE_LINE_READER::ReadLine(), STRING_LINE_READER::ReadLine(), INPUTSTREAM_LINE_READER::ReadLine(), STDISTREAM_LINE_READER::ReadLine(), STDISTREAM_LINE_READER::STDISTREAM_LINE_READER(), and STRING_LINE_READER::STRING_LINE_READER().
|
protected |
maximum allowed capacity using resizing.
Definition at line 173 of file richio.h.
Referenced by expandCapacity(), FILE_LINE_READER::ReadLine(), STRING_LINE_READER::ReadLine(), and INPUTSTREAM_LINE_READER::ReadLine().
|
protected |
origin of text lines, e.g. filename or "clipboard"
Definition at line 175 of file richio.h.
Referenced by FILE_LINE_READER::FILE_LINE_READER(), IFSTREAM_LINE_READER::IFSTREAM_LINE_READER(), INPUTSTREAM_LINE_READER::INPUTSTREAM_LINE_READER(), and STRING_LINE_READER::STRING_LINE_READER().