LCOV - code coverage report
Current view: top level - libgnucash/engine - gnc-session.c (source / functions) Coverage Total Hit
Test: gnucash.info Lines: 76.2 % 21 16
Test Date: 2026-11-02 18:19:43 Functions: 75.0 % 4 3
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /*
       2              :  * gnc-session.c -- GnuCash's session handling
       3              :  *
       4              :  * Copyright (C) 2006 Chris Shoemaker <c.shoemaker@cox.net>
       5              :  *
       6              :  * This program is free software; you can redistribute it and/or
       7              :  * modify it under the terms of the GNU General Public License as
       8              :  * published by the Free Software Foundation; either version 2 of
       9              :  * the License, or (at your option) any later version.
      10              :  *
      11              :  * This program is distributed in the hope that it will be useful,
      12              :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      13              :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14              :  * GNU General Public License for more details.
      15              :  *
      16              :  * You should have received a copy of the GNU General Public License
      17              :  * along with this program; if not, contact:
      18              :  *
      19              :  * Free Software Foundation           Voice:  +1-617-542-5942
      20              :  * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
      21              :  * Boston, MA  02110-1301,  USA       gnu@gnu.org
      22              :  */
      23              : 
      24              : #include <config.h>
      25              : #include "qof.h"
      26              : #include "gnc-session.h"
      27              : #include "gnc-engine.h"
      28              : #include "TransLog.h"
      29              : 
      30              : static QofSession * current_session = NULL;
      31              : static QofLogModule log_module = GNC_MOD_ENGINE;
      32              : 
      33              : QofSession *
      34        13643 : gnc_get_current_session (void)
      35              : {
      36        13643 :     if (!current_session)
      37              :     {
      38          142 :         QofBook* book = qof_book_new ();
      39          142 :         qof_event_suspend();
      40          142 :         current_session = qof_session_new (book);
      41          142 :         qof_event_resume();
      42              :     }
      43              : 
      44        13643 :     return current_session;
      45              : }
      46              : 
      47              : gboolean
      48         3068 : gnc_current_session_exist(void)
      49              : {
      50         3068 :     return (current_session != NULL);
      51              : }
      52              : 
      53              : void
      54            0 : gnc_set_current_session (QofSession *session)
      55              : {
      56            0 :     if (current_session)
      57            0 :         PINFO("Leak of current session.");
      58            0 :     current_session = session;
      59            0 : }
      60              : 
      61          114 : void gnc_clear_current_session()
      62              : {
      63          114 :     if (current_session)
      64              :     {
      65          114 :         xaccLogDisable();
      66          114 :         qof_session_destroy(current_session);
      67          114 :         xaccLogEnable();
      68          114 :         current_session = NULL;
      69              :     }
      70          114 : }
        

Generated by: LCOV version 2.0-1