FOSSology  4.4.0
Open Source License Compliance by Open Source Software
database.h
1 /*
2  SPDX-FileCopyrightText: © 2010, 2011, 2012 Hewlett-Packard Development Company, L.P.
3 
4  SPDX-License-Identifier: GPL-2.0-only
5 */
6 
7 #ifndef DATABASE_H_INCLUDE
8 #define DATABASE_H_INCLUDE
9 
10 /* local includes */
11 #include <job.h>
12 #include <scheduler.h>
13 
14 /* ************************************************************************** */
15 /* **** utility ************************************************************* */
16 /* ************************************************************************** */
17 
18 #define PQget(db_result, row, col) \
19  PQgetvalue(db_result, row, PQfnumber(db_result, col))
20 
21 extern const char* jobsql_failed;
22 
23 /* ************************************************************************** */
24 /* **** constructor destructor ********************************************** */
25 /* ************************************************************************** */
26 
27 void database_init(scheduler_t* scheduler);
28 void email_init(scheduler_t* scheduler);
29 
30 /* ************************************************************************** */
31 /* **** event and functions ************************************************* */
32 /* ************************************************************************** */
33 
34 PGresult* database_exec(scheduler_t* scheduler, const char* sql);
35 void database_exec_event(scheduler_t* scheduler, char* sql);
36 void database_update_event(scheduler_t* scheduler, void* unused);
37 
38 void database_reset_queue(scheduler_t* scheduler);
39 void database_update_job(scheduler_t* db_conn, job_t* j, job_status status);
40 void database_job_processed(int j_id, int number);
41 void database_job_log(int j_id, char* log_name);
42 void database_job_priority(scheduler_t* scheduler, job_t* job, int priority);
43 char* get_email_command(scheduler_t* scheduler, char* user_email);
44 
45 #endif /* DATABASE_H_INCLUDE */
PGconn * db_conn
The connection to Database.
Definition: pkgagent.c:22
PGresult * database_exec(scheduler_t *scheduler, const char *sql)
Executes an sql statement for the scheduler.
Definition: database.c:803
void database_reset_queue(scheduler_t *scheduler)
Resets any jobs in the job queue that are not completed.
Definition: database.c:931
void database_init(scheduler_t *scheduler)
Definition: database.c:770
void database_job_priority(scheduler_t *scheduler, job_t *job, int priority)
Changes the priority of a job queue entry in the database.
Definition: database.c:1021
void database_update_job(scheduler_t *scheduler, job_t *job, job_status status)
Change the status of a job in the database.
Definition: database.c:945
void database_update_event(scheduler_t *scheduler, void *unused)
Checks the job queue for any new entries.
Definition: database.c:841
void database_job_log(int j_id, char *log_name)
Enters the name of the log file for a job into the database.
Definition: database.c:1006
void database_exec_event(scheduler_t *scheduler, char *sql)
Definition: database.c:827
void email_init(scheduler_t *scheduler)
Loads information about the email that will be sent for job notifications.
Definition: database.c:557
void database_job_processed(int j_id, int num)
Updates the number of items that a job queue entry has processed.
Definition: database.c:992
char * get_email_command(scheduler_t *scheduler, char *user_email)
Build command to run to send email.
Definition: database.c:1073
Header file for the scheduler.
const char * jobsql_failed
The job structure.
Definition: job.h:51