change to XNODE and XATTR classes

This commit is contained in:
Dick Hollenbeck 2010-08-07 10:31:32 -05:00
parent 2c44d8175f
commit b615939120
1 changed files with 37 additions and 38 deletions

View File

@ -197,39 +197,39 @@ class EXPORT_HELP
* out here so we can write the tree in either S-expression file format * out here so we can write the tree in either S-expression file format
* or in XML if we put the tree built here into a wxXmlDocument. * or in XML if we put the tree built here into a wxXmlDocument.
*/ */
wxXmlNode* makeGenericRoot(); XNODE* makeGenericRoot();
/** /**
* Function makeGenericComponents * Function makeGenericComponents
* returns a sub-tree holding all the schematic components. * returns a sub-tree holding all the schematic components.
*/ */
wxXmlNode* makeGenericComponents(); XNODE* makeGenericComponents();
/** /**
* Function makeGenericDesignHeader * Function makeGenericDesignHeader
* fills out a project "design" header into an XML node. * fills out a project "design" header into an XML node.
* @return wxXmlNode* - the design header * @return XNODE* - the design header
*/ */
wxXmlNode* makeGenericDesignHeader(); XNODE* makeGenericDesignHeader();
/** /**
* Function makeGenericLibParts * Function makeGenericLibParts
* fills out an XML node with the unique library parts and returns it. * fills out an XML node with the unique library parts and returns it.
*/ */
wxXmlNode* makeGenericLibParts(); XNODE* makeGenericLibParts();
/** /**
* Function makeGenericListOfNets * Function makeGenericListOfNets
* fills out an XML node with a list of nets and returns it. * fills out an XML node with a list of nets and returns it.
*/ */
wxXmlNode* makeGenericListOfNets(); XNODE* makeGenericListOfNets();
/** /**
* Function makeGenericLibraries * Function makeGenericLibraries
* fills out an XML node with a list of used libraries and returns it. * fills out an XML node with a list of used libraries and returns it.
* Must have called makeGenericLibParts() before this function. * Must have called makeGenericLibParts() before this function.
*/ */
wxXmlNode* makeGenericLibraries(); XNODE* makeGenericLibraries();
public: public:
@ -557,28 +557,27 @@ SCH_COMPONENT* EXPORT_HELP::findNextComponentAndCreatPinList(
/** /**
* Function node * Function node
* is a convenience function that creates a new wxXmlNode with an optional textual child. * is a convenience function that creates a new XNODE with an optional textual child.
* It also provides some insulation from a possible change in XML library. Compiler * It also provides some insulation from a possible change in XML library.
* may or may not decide to inline this, its choice.
* *
* @param aName is the name to associate with a new node of type wxXML_ELEMENT_NODE. * @param aName is the name to associate with a new node of type wxXML_ELEMENT_NODE.
* @param aContent is optional, and if given is the text to include in a child * @param aContent is optional, and if given is the text to include in a child
* of the returned node, and has type wxXML_TEXT_NODE. * of the returned node, and has type wxXML_TEXT_NODE.
*/ */
static wxXmlNode* node( const wxString& aName, const wxString& aTextualContent = wxEmptyString ) static XNODE* node( const wxString& aName, const wxString& aTextualContent = wxEmptyString )
{ {
wxXmlNode* n = new wxXmlNode( 0, wxXML_ELEMENT_NODE, aName ); XNODE* n = new XNODE( wxXML_ELEMENT_NODE, aName );
if( aTextualContent.Len() > 0 ) // excludes wxEmptyString, the parameter's default value if( aTextualContent.Len() > 0 ) // excludes wxEmptyString, the parameter's default value
n->AddChild( new wxXmlNode( 0, wxXML_TEXT_NODE, wxEmptyString, aTextualContent ) ); n->AddChild( new XNODE( wxXML_TEXT_NODE, wxEmptyString, aTextualContent ) );
return n; return n;
} }
wxXmlNode* EXPORT_HELP::makeGenericDesignHeader() XNODE* EXPORT_HELP::makeGenericDesignHeader()
{ {
wxXmlNode* xdesign = node( wxT("design") ); XNODE* xdesign = node( wxT("design") );
char date[128]; char date[128];
DateAndTime( date ); DateAndTime( date );
@ -617,14 +616,14 @@ wxXmlNode* EXPORT_HELP::makeGenericDesignHeader()
} }
wxXmlNode* EXPORT_HELP::makeGenericLibraries() XNODE* EXPORT_HELP::makeGenericLibraries()
{ {
wxXmlNode* xlibs = node( wxT( "libraries" ) ); // auto_ptr XNODE* xlibs = node( wxT( "libraries" ) ); // auto_ptr
for( std::set<void*>::iterator it = m_Libraries.begin(); it!=m_Libraries.end(); ++it ) for( std::set<void*>::iterator it = m_Libraries.begin(); it!=m_Libraries.end(); ++it )
{ {
CMP_LIBRARY* lib = (CMP_LIBRARY*) *it; CMP_LIBRARY* lib = (CMP_LIBRARY*) *it;
wxXmlNode* xlibrary; XNODE* xlibrary;
xlibs->AddChild( xlibrary = node( wxT( "library" ) ) ); xlibs->AddChild( xlibrary = node( wxT( "library" ) ) );
xlibrary->AddProperty( wxT( "logical" ), lib->GetLogicalName() ); xlibrary->AddProperty( wxT( "logical" ), lib->GetLogicalName() );
@ -637,9 +636,9 @@ wxXmlNode* EXPORT_HELP::makeGenericLibraries()
} }
wxXmlNode* EXPORT_HELP::makeGenericLibParts() XNODE* EXPORT_HELP::makeGenericLibParts()
{ {
wxXmlNode* xlibparts = node( wxT( "libparts" ) ); // auto_ptr XNODE* xlibparts = node( wxT( "libparts" ) ); // auto_ptr
wxString sLibpart = wxT( "libpart" ); wxString sLibpart = wxT( "libpart" );
wxString sLib = wxT( "lib" ); wxString sLib = wxT( "lib" );
wxString sPart = wxT( "part" ); wxString sPart = wxT( "part" );
@ -665,7 +664,7 @@ wxXmlNode* EXPORT_HELP::makeGenericLibParts()
m_Libraries.insert( library ); // inserts component's library iff unique m_Libraries.insert( library ); // inserts component's library iff unique
wxXmlNode* xlibpart; XNODE* xlibpart;
xlibparts->AddChild( xlibpart = node( sLibpart ) ); xlibparts->AddChild( xlibpart = node( sLibpart ) );
xlibpart->AddProperty( sLib, library->GetLogicalName() ); xlibpart->AddProperty( sLib, library->GetLogicalName() );
xlibpart->AddProperty( sPart, lcomp->GetName() ); xlibpart->AddProperty( sPart, lcomp->GetName() );
@ -685,14 +684,14 @@ wxXmlNode* EXPORT_HELP::makeGenericLibParts()
fieldList.clear(); fieldList.clear();
lcomp->GetFields( fieldList ); lcomp->GetFields( fieldList );
wxXmlNode* xfields; XNODE* xfields;
xlibpart->AddChild( xfields = node( sFields ) ); xlibpart->AddChild( xfields = node( sFields ) );
for( unsigned i=0; i<fieldList.size(); ++i ) for( unsigned i=0; i<fieldList.size(); ++i )
{ {
if( !fieldList[i].m_Text.IsEmpty() ) if( !fieldList[i].m_Text.IsEmpty() )
{ {
wxXmlNode* xfield; XNODE* xfield;
xfields->AddChild( xfield = node( sField, fieldList[i].m_Text ) ); xfields->AddChild( xfield = node( sField, fieldList[i].m_Text ) );
xfield->AddProperty( sName, fieldList[i].m_Name ); xfield->AddProperty( sName, fieldList[i].m_Name );
} }
@ -706,12 +705,12 @@ wxXmlNode* EXPORT_HELP::makeGenericLibParts()
if( pinList.size() ) if( pinList.size() )
{ {
wxXmlNode* pins; XNODE* pins;
xlibpart->AddChild( pins = node( sPins ) ); xlibpart->AddChild( pins = node( sPins ) );
for( unsigned i=0; i<pinList.size(); ++i ) for( unsigned i=0; i<pinList.size(); ++i )
{ {
wxXmlNode* pin; XNODE* pin;
pins->AddChild( pin = node( sPin ) ); pins->AddChild( pin = node( sPin ) );
pin->AddProperty( sNum, pinList[i]->GetNumber() ); pin->AddProperty( sNum, pinList[i]->GetNumber() );
@ -725,9 +724,9 @@ wxXmlNode* EXPORT_HELP::makeGenericLibParts()
} }
wxXmlNode* EXPORT_HELP::makeGenericListOfNets() XNODE* EXPORT_HELP::makeGenericListOfNets()
{ {
wxXmlNode* xnets = node( wxT( "nets" ) ); // auto_ptr if exceptions ever get used. XNODE* xnets = node( wxT( "nets" ) ); // auto_ptr if exceptions ever get used.
wxString netCodeTxt; wxString netCodeTxt;
wxString netName; wxString netName;
wxString ref; wxString ref;
@ -740,7 +739,7 @@ wxXmlNode* EXPORT_HELP::makeGenericListOfNets()
wxString sNode = wxT( "node" ); wxString sNode = wxT( "node" );
wxString sFmtd = wxT( "%d" ); wxString sFmtd = wxT( "%d" );
wxXmlNode* xnet = 0; XNODE* xnet = 0;
int netCode; int netCode;
int lastNetCode = -1; int lastNetCode = -1;
int sameNetcodeCount = 0; int sameNetcodeCount = 0;
@ -801,7 +800,7 @@ wxXmlNode* EXPORT_HELP::makeGenericListOfNets()
xnet->AddProperty( sName, netName ); xnet->AddProperty( sName, netName );
} }
wxXmlNode* xnode; XNODE* xnode;
xnet->AddChild( xnode = node( sNode ) ); xnet->AddChild( xnode = node( sNode ) );
xnode->AddProperty( sRef, ref ); xnode->AddProperty( sRef, ref );
xnode->AddProperty( sPin, nitem->GetPinNumText() ); xnode->AddProperty( sPin, nitem->GetPinNumText() );
@ -811,9 +810,9 @@ wxXmlNode* EXPORT_HELP::makeGenericListOfNets()
} }
wxXmlNode* EXPORT_HELP::makeGenericRoot() XNODE* EXPORT_HELP::makeGenericRoot()
{ {
wxXmlNode* xroot = node( wxT( "export" ) ); XNODE* xroot = node( wxT( "export" ) );
xroot->AddProperty( wxT( "version" ), wxT( "D" ) ); xroot->AddProperty( wxT( "version" ), wxT( "D" ) );
@ -833,9 +832,9 @@ wxXmlNode* EXPORT_HELP::makeGenericRoot()
} }
wxXmlNode* EXPORT_HELP::makeGenericComponents() XNODE* EXPORT_HELP::makeGenericComponents()
{ {
wxXmlNode* xcomps = node( wxT( "components" ) ); XNODE* xcomps = node( wxT( "components" ) );
wxString timeStamp; wxString timeStamp;
@ -883,7 +882,7 @@ wxXmlNode* EXPORT_HELP::makeGenericComponents()
schItem = comp; schItem = comp;
wxXmlNode* xcomp; // current component being constructed XNODE* xcomp; // current component being constructed
// Output the component's elments in order of expected access frequency. // Output the component's elments in order of expected access frequency.
// This may not always look best, but it will allow faster execution // This may not always look best, but it will allow faster execution
@ -906,7 +905,7 @@ wxXmlNode* EXPORT_HELP::makeGenericComponents()
// container element if there are any <field>s. // container element if there are any <field>s.
if( comp->GetFieldCount() > MANDATORY_FIELDS ) if( comp->GetFieldCount() > MANDATORY_FIELDS )
{ {
wxXmlNode* xfields; XNODE* xfields;
xcomp->AddChild( xfields = node( sFields ) ); xcomp->AddChild( xfields = node( sFields ) );
for( int fldNdx = MANDATORY_FIELDS; fldNdx < comp->GetFieldCount(); ++fldNdx ) for( int fldNdx = MANDATORY_FIELDS; fldNdx < comp->GetFieldCount(); ++fldNdx )
@ -916,14 +915,14 @@ wxXmlNode* EXPORT_HELP::makeGenericComponents()
// only output a field if non empty // only output a field if non empty
if( !f->m_Text.IsEmpty() ) if( !f->m_Text.IsEmpty() )
{ {
wxXmlNode* xfield; XNODE* xfield;
xfields->AddChild( xfield = node( sField, f->m_Text ) ); xfields->AddChild( xfield = node( sField, f->m_Text ) );
xfield->AddProperty( sName, f->m_Name ); xfield->AddProperty( sName, f->m_Name );
} }
} }
} }
wxXmlNode* xlibsource; XNODE* xlibsource;
xcomp->AddChild( xlibsource = node( sLibSource ) ); xcomp->AddChild( xlibsource = node( sLibSource ) );
// "logical" library name, which is in anticipation of a better search // "logical" library name, which is in anticipation of a better search
@ -934,7 +933,7 @@ wxXmlNode* EXPORT_HELP::makeGenericComponents()
xlibsource->AddProperty( sLib, entry->GetLibrary()->GetLogicalName() ); xlibsource->AddProperty( sLib, entry->GetLibrary()->GetLogicalName() );
xlibsource->AddProperty( sPart, comp->m_ChipName ); xlibsource->AddProperty( sPart, comp->m_ChipName );
wxXmlNode* xsheetpath; XNODE* xsheetpath;
xcomp->AddChild( xsheetpath = node( sSheetPath ) ); xcomp->AddChild( xsheetpath = node( sSheetPath ) );
xsheetpath->AddProperty( sNames, path->PathHumanReadable() ); xsheetpath->AddProperty( sNames, path->PathHumanReadable() );
xsheetpath->AddProperty( sTStamps, path->Path() ); xsheetpath->AddProperty( sTStamps, path->Path() );