33 constexpr FIELD_ROW NET_ARRAY[] = { { 0, INT_MAX,
"i" } };
35 constexpr FIELD_ROW NAME_CHANGE[] = { { 0, INT_MAX,
"i s2" } };
125 const std::vector<OBJECT*>& vps =
ListItems( inst->ValuePositions );
132 else if( v >= 10005 )
220 if( v > 8999 && v < 15003 )
271 aAr.
Skip( v > 15000 ? 12 : 8 );
315 const int v =
Parent->ItemFormat( aAr );
343 for( int32_t i = aAr.
I32(); i > 0; --i )
388 {
"CSymbolInstanceArray",
"CComponentInstanceArray",
"CPadInstanceArray",
389 "CCopperInstanceArray",
"CCopperTerminalArray",
"CNodeArray",
"CConnectionArray",
390 "CBusArray",
"CBusTerminalArray",
"CBoardArray",
"CSheetArray",
391 "CComponentColoursArray",
"CComponentRulesArray",
"CNameChangeList" } );
One archive load stream; it owns every object it creates.
wxString ReadString()
ANSI (windows-1252) or the 0xFF 0xFFFE UTF-16 form.
bool InBool()
one or four bytes, depending on the active format
A loader coroutine. Awaiting one queues it on its archive's frame stack instead of nesting the call.
Placed instances and connectivity: component, symbol and pad instances, nets, nodes,...
Symbols, components and gates, embedded in designs or the single object of a library item stream.
std::map< std::string, std::function< std::unique_ptr< OBJECT >()>, std::less<> > REGISTRY
std::vector< T * > TypedItems(const OBJECT *aList)
The items of ListItems that are a T, in order.
void RegisterSkipped(REGISTRY &aReg, const char *aName, std::span< const FIELD_ROW > aRows)
const std::vector< OBJECT * > & ListItems(const OBJECT *aList)
The items of a design list or array, empty for anything else.
void Register(REGISTRY &aReg, std::initializer_list< const char * > aNames)
Register the class names whose objects load as a T.
POINT32 ReadPoint(ARCHIVE &aAr)
void RegisterConnectivityClasses(REGISTRY &aReg)
A run of fields present from version since to until inclusive.
Root of every deserialized object.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
int32_t Plated
bit 0 plated
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
std::vector< OBJECT * > Nets
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
LOAD_TASK LoadTail(ARCHIVE &aAr) override
The fields a subclass reads after the next vertex.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
wxString Name
reference designator
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
OBJECT * Track
null for an unrouted connection
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
OBJECT * Copper
the definition's free copper
The base of nearly every class.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
int ItemFormat(const ARCHIVE &aAr) const override
The version this object gates on; the base is the archive's current read format.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
OBJECT * NetClass
the design's first class when the file stores none
OBJECT * Item
pad instance, via, junction, copper or bus terminal, or free pad
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
OBJECT * PinNumber
placed pin number, below 10003
OBJECT * PinName
placed pin name, below 10003
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
OBJECT * ValuePositions
from 10003
OBJECT * Node
null when unconnected
OBJECT * StyleException
pad style overriding the pad's own
OBJECT * Pad
the definition's free pad
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
A placed footprint (gate -1) or a placed schematic gate.
std::unique_ptr< SOURCE_VALUE_POSITION > ConvertedSymbolName
std::unique_ptr< SOURCE_DESIGN_LIST > ConvertedValuePositions
Below 10003 the stored symbol name becomes the first value position of a new list.
OBJECT * ValuePositions
below 10003 built from the stored symbol name
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
bool Mirrored
PCB bottom side.
LOAD_TASK LoadRemainder(ARCHIVE &aAr)
The text position fields that follow the item fields.
OBJECT * Style
track style of the span leaving this vertex
LOAD_TASK LoadTail(ARCHIVE &aAr) override
The fields a subclass reads after the next vertex.
OBJECT * Layer
null in a schematic
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.