libdballe  7.6
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
dballe::db::sql::Repinfo Struct Referenceabstract

Fast cached access to the repinfo table. More...

#include <repinfo.h>

Inheritance diagram for dballe::db::sql::Repinfo:
dballe::db::mysql::MySQLRepinfoBase dballe::db::odbc::ODBCRepinfoBase dballe::db::postgresql::PostgreSQLRepinfoBase dballe::db::sqlite::SQLiteRepinfoBase dballe::db::mysql::MySQLRepinfoV6 dballe::db::odbc::ODBCRepinfoV6 dballe::db::postgresql::PostgreSQLRepinfoV6 dballe::db::sqlite::SQLiteRepinfoV6

Public Member Functions

 Repinfo (Connection &conn)
 
void to_record (int id, Record &rec)
 Fill repinfo information in a Record based on the repinfo entry with the given ID.
 
const char * get_rep_memo (int id)
 Get the rep_memo for a given ID; throws if id is not valud.
 
int get_id (const char *rep_memo)
 Get the ID for a given rep_memo; throws if rep_memo is not valid.
 
int get_priority (int id)
 Get the priority for a given ID; returns INT_MAX if id is not valid.
 
void update (const char *deffile, int *added, int *deleted, int *updated)
 Update the report type information in the database using the data from the given file. More...
 
std::map< std::string, int > get_priorities ()
 Get a mapping between rep_memo and their priorities.
 
std::vector< int > ids_by_prio (const core::Query &rec)
 Return a vector of IDs matching the priority constraints in the given record.
 
int obtain_id (const char *memo)
 Get the id of a repinfo entry given its name. More...
 
virtual void dump (FILE *out)=0
 Dump the entire contents of the database to an output stream.
 

Data Fields

Connectionconn
 

Protected Member Functions

const repinfo::Cacheget_by_id (unsigned id) const
 Get a Cache entry by database ID.
 
const repinfo::Cacheget_by_memo (const char *memo) const
 Get a Cache entry by report name.
 
int cache_find_by_id (unsigned id) const
 Lookup a cache index by database ID. Returns -1 if not found.
 
int cache_find_by_memo (const char *memo) const
 Lookup a cache index by report name. Returns -1 if not found.
 
void cache_append (unsigned id, const char *memo, const char *desc, int prio, const char *descriptor, int tablea)
 Append an entry to the cache.
 
void rebuild_memo_idx () const
 Rebuild the memo_idx cache.
 
std::vector< repinfo::Cacheread_repinfo_file (const char *deffile)
 Read cache entries from a repinfo file on disk.
 
virtual int id_use_count (unsigned id, const char *name)=0
 Return how many time this ID is used in the database.
 
virtual void delete_entry (unsigned id)=0
 Delete a repinfo entry.
 
virtual void update_entry (const repinfo::Cache &entry)=0
 Update an entry using the new_* fields of entry.
 
virtual void insert_entry (const repinfo::Cache &entry)=0
 Insert an entry using the new_* fields of entry.
 
virtual void read_cache ()=0
 Reread the repinfo cache from the database.
 
virtual void insert_auto_entry (const char *memo)=0
 Create an automatic entry for a missing memo, and insert it in the database.
 

Protected Attributes

std::vector< repinfo::Cachecache
 Cache of table entries.
 
std::vector< repinfo::Memoidxmemo_idx
 rep_memo -> rep_cod reverse index
 

Detailed Description

Fast cached access to the repinfo table.

Member Function Documentation

int dballe::db::sql::Repinfo::obtain_id ( const char *  memo)

Get the id of a repinfo entry given its name.

It creates a new entry if the memo is missing from the database.

Parameters
memoThe name to query
Returns
The resulting id.
void dballe::db::sql::Repinfo::update ( const char *  deffile,
int *  added,
int *  deleted,
int *  updated 
)

Update the report type information in the database using the data from the given file.

Parameters
ridba_db_repinfo used to update the database
deffilePathname of the file to use for the update. The NULL value is accepted and means to use the default configure repinfo.csv file.
Return values
addedNumber of entries that have been added during the update.
deletedNumber of entries that have been deleted during the update.
updatedNumber of entries that have been updated during the update.

The documentation for this struct was generated from the following file: