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 2577 of file sqlite3gen.cpp.

2578{
2579 // + classes
2580 // + namespaces
2581 // + files
2582 // + groups
2583 // + related pages
2584 // + examples
2585 // + main page
2586 sqlite3 *db = openDbConnection();
2587 if (db==nullptr)
2588 {
2589 return;
2590 }
2591
2592# ifdef SQLITE3_DEBUG
2593 // debug: show all executed statements
2594 sqlite3_trace(db, &sqlLog, nullptr);
2595# endif
2596
2597 beginTransaction(db);
2598 pragmaTuning(db);
2599
2600 if (-1==initializeTables(db))
2601 return;
2602
2603 if ( -1 == prepareStatements(db) )
2604 {
2605 err("sqlite generator: prepareStatements failed!\n");
2606 return;
2607 }
2608
2610
2611 // + classes
2612 for (const auto &cd : *Doxygen::classLinkedMap)
2613 {
2614 msg("Generating Sqlite3 output for class {}\n",cd->name());
2615 generateSqlite3ForClass(cd.get());
2616 }
2617
2618 // + concepts
2619 for (const auto &cd : *Doxygen::conceptLinkedMap)
2620 {
2621 msg("Generating Sqlite3 output for concept {}\n",cd->name());
2622 generateSqlite3ForConcept(cd.get());
2623 }
2624
2625 // + modules
2626 for (const auto &mod : ModuleManager::instance().modules())
2627 {
2628 msg("Generating Sqlite3 output for module {}\n",mod->name());
2629 generateSqlite3ForModule(mod.get());
2630 }
2631
2632 // + namespaces
2633 for (const auto &nd : *Doxygen::namespaceLinkedMap)
2634 {
2635 msg("Generating Sqlite3 output for namespace {}\n",nd->name());
2637 }
2638
2639 // + files
2640 for (const auto &fn : *Doxygen::inputNameLinkedMap)
2641 {
2642 for (const auto &fd : *fn)
2643 {
2644 msg("Generating Sqlite3 output for file {}\n",fd->name());
2645 generateSqlite3ForFile(fd.get());
2646 }
2647 }
2648
2649 // + groups
2650 for (const auto &gd : *Doxygen::groupLinkedMap)
2651 {
2652 msg("Generating Sqlite3 output for group {}\n",gd->name());
2653 generateSqlite3ForGroup(gd.get());
2654 }
2655
2656 // + page
2657 for (const auto &pd : *Doxygen::pageLinkedMap)
2658 {
2659 msg("Generating Sqlite3 output for page {}\n",pd->name());
2660 generateSqlite3ForPage(pd.get(),false);
2661 }
2662
2663 // + dirs
2664 for (const auto &dd : *Doxygen::dirLinkedMap)
2665 {
2666 msg("Generating Sqlite3 output for dir {}\n",dd->name());
2667 generateSqlite3ForDir(dd.get());
2668 }
2669
2670 // + examples
2671 for (const auto &pd : *Doxygen::exampleLinkedMap)
2672 {
2673 msg("Generating Sqlite3 output for example {}\n",pd->name());
2674 generateSqlite3ForPage(pd.get(),true);
2675 }
2676
2677 // + main page
2679 {
2680 msg("Generating Sqlite3 output for the main page\n");
2682 }
2683
2684 // TODO: copied from initializeSchema; not certain if we should say/do more
2685 // if there's a failure here?
2686 if (-1==initializeViews(db))
2687 return;
2688
2689 endTransaction(db);
2690}
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, 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().