ostream& Root::writeXML(ostream& os, uint oFlags, const char* pfx) const { if (oFlags & Tree::OFlg_Compressed) { pfx = ""; } // N.B.: Assume that my children are LM's bool doPost = ANode::writeXML_pre(os, oFlags, pfx); for (ANodeSortedChildIterator it(this, ANodeSortedIterator::cmpByName); it.current(); it++) { ANode* scope = it.current(); scope->writeXML(os, oFlags, pfx); } if (doPost) { ANode::writeXML_post(os, oFlags, pfx); } return os; }
ostream& LM::writeXML(ostream& os, uint oFlags, const char* pre) const { string indent = " "; if (oFlags & Tree::OFlg_Compressed) { pre = ""; indent = ""; } // N.B.: Assume my children are Files bool doPost = ANode::writeXML_pre(os, oFlags, pre); string prefix = pre + indent; for (ANodeSortedChildIterator it(this, ANodeSortedIterator::cmpByName); it.current(); it++) { ANode* scope = it.current(); scope->writeXML(os, oFlags, prefix.c_str()); } if (doPost) { ANode::writeXML_post(os, oFlags, pre); } return os; }