|
KiCad PCB EDA Suite
|
Abstract base for every per-document-type differ. More...
#include <kicad_differ.h>
Classes | |
| struct | OPTIONS |
Public Member Functions | |
| virtual | ~KICAD_DIFFER () |
| void | SetOptions (const OPTIONS &aOptions) |
| const OPTIONS & | GetOptions () const |
| virtual DOCUMENT_DIFF | Diff ()=0 |
| Produce a DOCUMENT_DIFF of the inputs the concrete differ was constructed with. | |
Protected Member Functions | |
| KICAD_DIFFER ()=default | |
Protected Attributes | |
| OPTIONS | m_options |
Abstract base for every per-document-type differ.
Concrete differs live with their document type (PCB_DIFFER in pcbnew, SCH_DIFFER in eeschema, etc.) so that the heavy includes stay confined to their kiface.
Lifetime model: callers construct a differ with already-parsed documents, configure it via SetOptions(), call Diff(), then discard. Differs do not cache results internally; re-running Diff() reproduces the same DOCUMENT_DIFF for the same inputs (deterministic).
Definition at line 47 of file kicad_differ.h.
|
virtualdefault |
|
protecteddefault |
|
pure virtual |
Produce a DOCUMENT_DIFF of the inputs the concrete differ was constructed with.
Must be deterministic for fixed inputs. Concrete differs sort their output by KIID_PATH so the JSON serialization is bit-stable across runs.
Implemented in KICAD_DIFF::FP_LIB_DIFFER, KICAD_DIFF::PCB_DIFFER, KICAD_DIFF::SCH_DIFFER, and KICAD_DIFF::SYM_LIB_DIFFER.
|
inline |
Definition at line 67 of file kicad_differ.h.
References m_options.
|
inline |
Definition at line 66 of file kicad_differ.h.
References m_options.
|
protected |
Definition at line 80 of file kicad_differ.h.
Referenced by KICAD_DIFF::FP_LIB_DIFFER::Diff(), KICAD_DIFF::PCB_DIFFER::Diff(), KICAD_DIFF::SCH_DIFFER::Diff(), KICAD_DIFF::SYM_LIB_DIFFER::Diff(), KICAD_DIFF::PCB_DIFFER::diffFootprintChildren(), GetOptions(), and SetOptions().