Doxygen
Loading...
Searching...
No Matches
sqlite3gen.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void generateSqlite3 ()

Function Documentation

◆ generateSqlite3()

void generateSqlite3 ( )

Definition at line 2585 of file sqlite3gen.cpp.

2586{
2587 // + classes
2588 // + namespaces
2589 // + files
2590 // + groups
2591 // + related pages
2592 // + examples
2593 // + main page
2594 sqlite3 *db = openDbConnection();
2595 if (db==nullptr)
2596 {
2597 return;
2598 }
2599
2600# ifdef SQLITE3_DEBUG
2601 // debug: show all executed statements
2602 sqlite3_trace(db, &sqlLog, nullptr);
2603# endif
2604
2605 beginTransaction(db);
2606 pragmaTuning(db);
2607
2608 if (-1==initializeTables(db))
2609 return;
2610
2611 if ( -1 == prepareStatements(db) )
2612 {
2613 err("sqlite generator: prepareStatements failed!\n");
2614 return;
2615 }
2616
2618
2619 // + classes
2620 for (const auto &cd : *Doxygen::classLinkedMap)
2621 {
2622 msg("Generating Sqlite3 output for class {}\n",cd->name());
2623 generateSqlite3ForClass(cd.get());
2624 }
2625
2626 // + concepts
2627 for (const auto &cd : *Doxygen::conceptLinkedMap)
2628 {
2629 msg("Generating Sqlite3 output for concept {}\n",cd->name());
2630 generateSqlite3ForConcept(cd.get());
2631 }
2632
2633 // + modules
2634 for (const auto &mod : ModuleManager::instance().modules())
2635 {
2636 msg("Generating Sqlite3 output for module {}\n",mod->name());
2637 generateSqlite3ForModule(mod.get());
2638 }
2639
2640 // + namespaces
2641 for (const auto &nd : *Doxygen::namespaceLinkedMap)
2642 {
2643 msg("Generating Sqlite3 output for namespace {}\n",nd->name());
2645 }
2646
2647 // + files
2648 for (const auto &fn : *Doxygen::inputNameLinkedMap)
2649 {
2650 for (const auto &fd : *fn)
2651 {
2652 msg("Generating Sqlite3 output for file {}\n",fd->name());
2653 generateSqlite3ForFile(fd.get());
2654 }
2655 }
2656
2657 // + groups
2658 for (const auto &gd : *Doxygen::groupLinkedMap)
2659 {
2660 msg("Generating Sqlite3 output for group {}\n",gd->name());
2661 generateSqlite3ForGroup(gd.get());
2662 }
2663
2664 // + page
2665 for (const auto &pd : *Doxygen::pageLinkedMap)
2666 {
2667 msg("Generating Sqlite3 output for page {}\n",pd->name());
2668 generateSqlite3ForPage(pd.get(),false);
2669 }
2670
2671 // + dirs
2672 for (const auto &dd : *Doxygen::dirLinkedMap)
2673 {
2674 msg("Generating Sqlite3 output for dir {}\n",dd->name());
2675 generateSqlite3ForDir(dd.get());
2676 }
2677
2678 // + examples
2679 for (const auto &pd : *Doxygen::exampleLinkedMap)
2680 {
2681 msg("Generating Sqlite3 output for example {}\n",pd->name());
2682 generateSqlite3ForPage(pd.get(),true);
2683 }
2684
2685 // + main page
2687 {
2688 msg("Generating Sqlite3 output for the main page\n");
2690 }
2691
2692 // TODO: copied from initializeSchema; not certain if we should say/do more
2693 // if there's a failure here?
2694 if (-1==initializeViews(db))
2695 return;
2696
2697 endTransaction(db);
2698}
static NamespaceLinkedMap * namespaceLinkedMap
Definition doxygen.h:108
static ConceptLinkedMap * conceptLinkedMap
Definition doxygen.h:90
static std::unique_ptr< PageDef > mainPage
Definition doxygen.h:93
static FileNameLinkedMap * inputNameLinkedMap
Definition doxygen.h:97
static ClassLinkedMap * classLinkedMap
Definition doxygen.h:88
static PageLinkedMap * exampleLinkedMap
Definition doxygen.h:91
static PageLinkedMap * pageLinkedMap
Definition doxygen.h:92
static DirLinkedMap * dirLinkedMap
Definition doxygen.h:120
static GroupLinkedMap * groupLinkedMap
Definition doxygen.h:107
static ModuleManager & instance()
#define msg(fmt,...)
Definition message.h:94
#define err(fmt,...)
Definition message.h:127
static void recordMetadata()
static int initializeTables(sqlite3 *db)
static void generateSqlite3ForModule(const ModuleDef *mod)
static void beginTransaction(sqlite3 *db)
static void generateSqlite3ForConcept(const ConceptDef *cd)
static void generateSqlite3ForGroup(const GroupDef *gd)
static int prepareStatements(sqlite3 *db)
static void endTransaction(sqlite3 *db)
static void generateSqlite3ForDir(const DirDef *dd)
static int initializeViews(sqlite3 *db)
static sqlite3 * openDbConnection()
static void generateSqlite3ForClass(const ClassDef *cd)
static void generateSqlite3ForNamespace(const NamespaceDef *nd)
static void generateSqlite3ForFile(const FileDef *fd)
static void generateSqlite3ForPage(const PageDef *pd, bool isExample)
static void pragmaTuning(sqlite3 *db)

References beginTransaction(), Doxygen::classLinkedMap, Doxygen::conceptLinkedMap, Doxygen::dirLinkedMap, endTransaction(), err, Doxygen::exampleLinkedMap, generateSqlite3(), generateSqlite3ForClass(), generateSqlite3ForConcept(), generateSqlite3ForDir(), generateSqlite3ForFile(), generateSqlite3ForGroup(), generateSqlite3ForModule(), generateSqlite3ForNamespace(), generateSqlite3ForPage(), Doxygen::groupLinkedMap, initializeTables(), initializeViews(), Doxygen::inputNameLinkedMap, ModuleManager::instance(), Doxygen::mainPage, msg, Doxygen::namespaceLinkedMap, openDbConnection(), Doxygen::pageLinkedMap, pragmaTuning(), prepareStatements(), and recordMetadata().

Referenced by generateOutput(), and generateSqlite3().