/usr/include/dballe/db/context.h is in libdballe-dev 5.10-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | /*
* db/context - context table management
*
* Copyright (C) 2005--2010 ARPA-SIM <urpsim@smr.arpa.emr.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* Author: Enrico Zini <enrico@enricozini.com>
*/
#ifndef DBALLE_DB_CONTEXT_H
#define DBALLE_DB_CONTEXT_H
/** @file
* @ingroup db
*
* Context table management used by the db module.
*/
#include <dballe/db/odbcworkarounds.h>
#include <sqltypes.h>
#include <cstdio>
namespace dballe {
struct DB;
namespace db {
struct Connection;
struct Statement;
/**
* Precompiled queries to manipulate the context table
*/
struct Context
{
/**
* DB connection.
*/
DB& db;
/** Precompiled select statement */
db::Statement* sstm;
/** Precompiled select data statement */
db::Statement* sdstm;
/** Precompiled insert statement */
db::Statement* istm;
/** Precompiled delete statement */
db::Statement* dstm;
/** Context ID SQL parameter */
DBALLE_SQL_C_SINT_TYPE id;
/** Station ID SQL parameter */
DBALLE_SQL_C_SINT_TYPE id_station;
/** Report ID SQL parameter */
DBALLE_SQL_C_SINT_TYPE id_report;
/** Date SQL parameter */
SQL_TIMESTAMP_STRUCT date;
/** First level type SQL parameter */
DBALLE_SQL_C_SINT_TYPE ltype1;
/** Level L1 SQL parameter */
DBALLE_SQL_C_SINT_TYPE l1;
/** Second level type SQL parameter */
DBALLE_SQL_C_SINT_TYPE ltype2;
/** Level L2 SQL parameter */
DBALLE_SQL_C_SINT_TYPE l2;
/** Time range type SQL parameter */
DBALLE_SQL_C_SINT_TYPE pind;
/** Time range P1 SQL parameter */
DBALLE_SQL_C_SINT_TYPE p1;
/** Time range P2 SQL parameter */
DBALLE_SQL_C_SINT_TYPE p2;
Context(DB& db);
~Context();
/**
* Get the context id for the current context data.
*
* @return
* The database ID, or -1 if no existing context entry matches the given values
*/
int get_id();
/**
* Get context information given a context ID
*
* @param id
* ID of the context to query
*/
void get_data(int id);
/**
* Get the context id for a station info context.
*
* id_station and id_report must be filled in for the query.
*
* @return
* The database ID
*/
int obtain_station_info();
/**
* Insert a new context in the database
*
* @return
* The ID of the newly inserted context
*/
int insert();
/**
* Remove a context record
*/
void remove();
/**
* Dump the entire contents of the table to an output stream
*/
void dump(FILE* out);
private:
// disallow copy
Context(const Context&);
Context& operator=(const Context&);
};
} // namespace db
} // namespace dballe
/* vim:set ts=4 sw=4: */
#endif
|