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

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

Referenced by generateOutput().