KiCad PCB EDA Suite
Loading...
Searching...
No Matches
FILTER_READER Class Reference

Read lines of text from another LINE_READER but only returns non-comment lines and non-blank lines from its ReadLine() function. More...

#include <filter_reader.h>

Inheritance diagram for FILTER_READER:
LINE_READER

Public Member Functions

 FILTER_READER (LINE_READER &aReader)
 Does not take ownership over aReader so will not destroy it. More...
 
 ~FILTER_READER ()
 
char * ReadLine () override
 Read a line of text into the buffer and increments the line number counter. More...
 
const wxString & GetSource () const override
 Returns the name of the source of the lines in an abstract sense. More...
 
unsigned LineNumber () const override
 Return the line number of the last line read from this LINE_READER. More...
 
char * Line () const
 Return a pointer to the last line that was read in. More...
 
 operator char * () const
 A casting operator that returns a char* pointer to the start of the line buffer. More...
 
unsigned Length () const
 Return the number of bytes in the last line read from this LINE_READER. More...
 

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. More...
 

Protected Attributes

unsigned m_length
 no. bytes in line before trailing nul. More...
 
unsigned m_lineNum
 
char * m_line
 the read line of UTF8 text More...
 
unsigned m_capacity
 no. bytes allocated for line. More...
 
unsigned m_maxLineLength
 maximum allowed capacity using resizing. More...
 
wxString m_source
 origin of text lines, e.g. filename or "clipboard" More...
 

Private Attributes

LINE_READERreader
 

Detailed Description

Read lines of text from another LINE_READER but only returns non-comment lines and non-blank lines from its ReadLine() function.

Definition at line 36 of file filter_reader.h.

Constructor & Destructor Documentation

◆ FILTER_READER()

FILTER_READER::FILTER_READER ( LINE_READER aReader)

Does not take ownership over aReader so will not destroy it.

Definition at line 31 of file filter_reader.cpp.

References LINE_READER::m_line.

◆ ~FILTER_READER()

FILTER_READER::~FILTER_READER ( )

Definition at line 44 of file filter_reader.cpp.

References LINE_READER::m_line.

Member Function Documentation

◆ expandCapacity()

void LINE_READER::expandCapacity ( unsigned  aNewsize)
protectedinherited

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 LINE_READER::m_capacity, LINE_READER::m_length, LINE_READER::m_line, and LINE_READER::m_maxLineLength.

Referenced by FILE_LINE_READER::ReadLine(), STRING_LINE_READER::ReadLine(), and INPUTSTREAM_LINE_READER::ReadLine().

◆ GetSource()

const wxString & FILTER_READER::GetSource ( ) const
inlineoverridevirtual

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 from LINE_READER.

Definition at line 48 of file filter_reader.h.

References LINE_READER::GetSource(), and reader.

◆ Length()

unsigned LINE_READER::Length ( ) const
inlineinherited

◆ Line()

char * LINE_READER::Line ( ) const
inlineinherited

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(), KICAD_NETLIST_PARSER::parseNet(), GPCB_FPL_CACHE::parseParameters(), DSNLEXER::PopReader(), SCH_EDITOR_CONTROL::processCmpToFootprintLinkFile(), MWAVE_POLYGONAL_SHAPE_DLG::ReadDataShapeDescr(), ReadLine(), SafeReadFile(), LP_CACHE::SkipIndex(), EXCELLON_IMAGE::TestFileIsExcellon(), and GERBER_FILE_IMAGE::TestFileIsRS274().

◆ LineNumber()

unsigned FILTER_READER::LineNumber ( ) const
inlineoverridevirtual

Return the line number of the last line read from this LINE_READER.

Lines start from 1.

Reimplemented from LINE_READER.

Definition at line 53 of file filter_reader.h.

References LINE_READER::LineNumber(), and reader.

◆ operator char *()

LINE_READER::operator char * ( ) const
inlineinherited

A casting operator that returns a char* pointer to the start of the line buffer.

Definition at line 137 of file richio.h.

◆ ReadLine()

char * FILTER_READER::ReadLine ( )
overridevirtual

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.

Returns
The beginning of the read line, or NULL if EOF.
Exceptions
IO_ERRORwhen a line is too long.

Implements LINE_READER.

Definition at line 52 of file filter_reader.cpp.

References LINE_READER::Length(), LINE_READER::Line(), LINE_READER::m_length, LINE_READER::m_line, reader, and LINE_READER::ReadLine().

Referenced by MWAVE_POLYGONAL_SHAPE_DLG::ReadDataShapeDescr().

Member Data Documentation

◆ m_capacity

unsigned LINE_READER::m_capacity
protectedinherited

◆ m_length

◆ m_line

◆ m_lineNum

◆ m_maxLineLength

unsigned LINE_READER::m_maxLineLength
protectedinherited

maximum allowed capacity using resizing.

Definition at line 173 of file richio.h.

Referenced by LINE_READER::expandCapacity(), FILE_LINE_READER::ReadLine(), STRING_LINE_READER::ReadLine(), and INPUTSTREAM_LINE_READER::ReadLine().

◆ m_source

wxString LINE_READER::m_source
protectedinherited

◆ reader

LINE_READER& FILTER_READER::reader
private

Definition at line 59 of file filter_reader.h.

Referenced by GetSource(), LineNumber(), and ReadLine().


The documentation for this class was generated from the following files: