示例#1
0
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";
}
示例#2
0
//------------------------------------------------------------
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; }
  
}