void AtomicModel::write(std::ostream& out) const { out << "<model name=\"" << getName().c_str() << "\" " << "type=\"atomic\" "; if (not conditions().empty()) { out << "conditions=\""; std::vector < std::string >::const_iterator it = conditions().begin(); while (it != conditions().end()) { out << it->c_str(); ++it; if (it != conditions().end()) { out << ","; } } out << "\" "; } out << "dynamics=\"" << dynamics().c_str() << "\" "; if (not observables().empty()) { out << "observables=\"" << observables().c_str() << "\" "; } writeGraphics(out); out << ">\n"; writePort(out); out << "</model>\n"; }
//------------------------------------------------------------ static void writeBooks(BookCaseDB& db, info_lib *mmdb, const char *bcname, DBCursor *node_meta_cursor, int compressed, char *comp_agent, hashTable<CC_String,BTCollectable> &hd) { DBTable *bookMeta = db.table(BookCaseDB::BookMeta, DB::READ); DBCursor BookCursor(*bookMeta); DBTable *toc = db.table(BookCaseDB::TOCTree, DB::READ); DBCursor TocCursor(*toc); DBTable *dlp = db.table(BookCaseDB::TOCPath, DB::READ); DBCursor DlpCursor(*dlp); DBTable *sgml = db.table(BookCaseDB::NodeSGML, DB::READ); DBCursor SgmlCursor(*sgml); DBCursor *GraphicsCursorPtr; int process_graphics = 1; try { DBTable *graphics = db.table(BookCaseDB::Graphics, DB::READ); GraphicsCursorPtr = new DBCursor( *graphics ); } catch (PosixError&, p){ /* error opening graphics stuff... skip graphics */ process_graphics = 0; }end_try const char *bookLocator; int tabQty; char **tabLines; while(BookCursor.next(STRING_CODE, &bookLocator, SKIP_CODE, SKIP_CODE, SKIP_CODE, /* @# skipping shortlists not suported yet... */ SHORT_LIST_CODE, &tabQty, STRING_CODE, &tabLines, SKIP_CODE, /* skip access data */ NULL)){ hashTable<CC_String,BTCollectable> node_tab(hash_func); node_table( node_meta_cursor, bookLocator, node_tab); writeDLP(db, mmdb, bcname, bookLocator, DlpCursor, node_tab); writeTOC(db, mmdb, bcname, bookLocator, TocCursor); writeSGML(db, bookLocator, SgmlCursor, hd); if ( process_graphics ) { writeGraphics(db, bookLocator, *GraphicsCursorPtr, compressed, comp_agent ); } node_tab.clearAndDestroy(); } if ( process_graphics ) { delete GraphicsCursorPtr; } }