libdballe 9.14
dballe::fortran::CommonAPIImplementation Class Reference

Common implementation of the set* and enq* machinery using input and output records. More...

#include <commonapi.h>

Inheritance diagram for dballe::fortran::CommonAPIImplementation:
dballe::fortran::API dballe::fortran::DbAPI dballe::fortran::MsgAPI

Public Types

enum  Permissions {
  PERM_ANA_RO = (1 << 0) , PERM_ANA_WRITE = (1 << 1) , PERM_DATA_RO = (1 << 2) , PERM_DATA_ADD = (1 << 3) ,
  PERM_DATA_WRITE = (1 << 4) , PERM_ATTR_RO = (1 << 5) , PERM_ATTR_WRITE = (1 << 6)
}

Public Member Functions

 CommonAPIImplementation (const CommonAPIImplementation &)=delete
 CommonAPIImplementation (CommonAPIImplementation &&)=delete
CommonAPIImplementation & operator= (const CommonAPIImplementation &)=delete
CommonAPIImplementation & operator= (CommonAPIImplementation &&)=delete
template<typename Operation>
auto reset_operation (Operation *op) -> decltype(op->run())
void reset_operation ()
int enqi (const char *param) override
signed char enqb (const char *param) override
float enqr (const char *param) override
double enqd (const char *param) override
bool enqc (const char *param, char *res, unsigned res_len) override
void seti (const char *param, int value) override
void setb (const char *param, signed char value) override
void setr (const char *param, float value) override
void setd (const char *param, double value) override
void setc (const char *param, const char *value) override
void set_station_context () override
void enqlevel (int &ltype1, int &l1, int &ltype2, int &l2) override
void setlevel (int ltype1, int l1, int ltype2, int l2) override
void enqtimerange (int &ptype, int &p1, int &p2) override
void settimerange (int ptype, int p1, int p2) override
void enqdate (int &year, int &month, int &day, int &hour, int &min, int &sec) override
void setdate (int year, int month, int day, int hour, int min, int sec) override
void setdatemin (int year, int month, int day, int hour, int min, int sec) override
void setdatemax (int year, int month, int day, int hour, int min, int sec) override
void unset (const char *param) override
void unsetall () override
void unsetb () override
const char * describe_level (int ltype1, int l1, int ltype2, int l2) override
const char * describe_timerange (int ptype, int p1, int p2) override
const char * describe_var (const char *varcode, const char *value) override
void next_station () override
wreport::Varcode next_data () override
int query_attributes () override
const char * next_attribute () override
void insert_attributes () override
void remove_attributes () override
void commit () override
const Operation * test_get_operation () const
const core::Querytest_get_input_query () const
const core::Datatest_get_input_data () const
const Valuestest_get_qcinput () const
Public Member Functions inherited from dballe::fortran::API
virtual void reinit_db (const char *repinfofile=nullptr)=0
virtual void remove_all ()=0
virtual int query_stations ()=0
virtual int query_data ()=0
virtual void insert_data ()=0
virtual void remove_data ()=0
virtual void messages_open_input (const char *filename, const char *mode, Encoding format, bool simplified=true)=0
virtual void messages_open_output (const char *filename, const char *mode, Encoding format)=0
virtual bool messages_read_next ()=0
virtual void messages_write_next (const char *template_name=0)=0
const char * test_enqc (const char *param, unsigned len)
 Wrap enqc in a way that makes it easier to use in unit tests.

Static Public Member Functions

static unsigned compute_permissions (const char *anaflag, const char *dataflag, const char *attrflag)
 Set the permission bits, parsing the flags and doing consistency checks.
Static Public Member Functions inherited from dballe::fortran::API
static void to_fortran (int32_t val, char *buf, unsigned buf_len)
static void to_fortran (const char *str, char *buf, unsigned buf_len)
static void to_fortran (const std::string &str, char *buf, unsigned buf_len)

Public Attributes

unsigned perms = 0
core::Query input_query
wreport::Varcode input_query_var = 0
std::set< wreport::Varcode > input_query_varlist
core::Data input_data
std::vector< wreport::Varcode > selected_attr_codes
 Selected attribute varcodes (*varlist).
bool station_context = false
Values qcinput
Attributes qcoutput

Protected Member Functions

bool _seti (const char *key, unsigned len, int val)
bool _setd (const char *key, unsigned len, double val)
bool _setc (const char *key, unsigned len, const char *val)
bool _unset (const char *key, unsigned len)
void validate_input_query ()

Protected Attributes

Operation * operation = nullptr
std::string cached_spiega

Friends

class Operation

Additional Inherited Members

Static Public Attributes inherited from dballe::fortran::API
static const signed char missing_byte
static const int missing_int
static const float missing_float
static const double missing_double

Detailed Description

Common implementation of the set* and enq* machinery using input and output records.

Member Function Documentation

◆ commit()

void dballe::fortran::CommonAPIImplementation::commit ( )
overridevirtual

Implements dballe::fortran::API.

◆ describe_level()

const char * dballe::fortran::CommonAPIImplementation::describe_level ( int ltype1,
int l1,
int ltype2,
int l2 )
overridevirtual

Implements dballe::fortran::API.

◆ describe_timerange()

const char * dballe::fortran::CommonAPIImplementation::describe_timerange ( int ptype,
int p1,
int p2 )
overridevirtual

Implements dballe::fortran::API.

◆ describe_var()

const char * dballe::fortran::CommonAPIImplementation::describe_var ( const char * varcode,
const char * value )
overridevirtual

Implements dballe::fortran::API.

◆ enqb()

signed char dballe::fortran::CommonAPIImplementation::enqb ( const char * param)
overridevirtual

Implements dballe::fortran::API.

◆ enqc()

bool dballe::fortran::CommonAPIImplementation::enqc ( const char * param,
char * res,
unsigned res_len )
overridevirtual

Implements dballe::fortran::API.

◆ enqd()

double dballe::fortran::CommonAPIImplementation::enqd ( const char * param)
overridevirtual

Implements dballe::fortran::API.

◆ enqdate()

void dballe::fortran::CommonAPIImplementation::enqdate ( int & year,
int & month,
int & day,
int & hour,
int & min,
int & sec )
overridevirtual

Implements dballe::fortran::API.

◆ enqi()

int dballe::fortran::CommonAPIImplementation::enqi ( const char * param)
overridevirtual

Implements dballe::fortran::API.

◆ enqlevel()

void dballe::fortran::CommonAPIImplementation::enqlevel ( int & ltype1,
int & l1,
int & ltype2,
int & l2 )
overridevirtual

Implements dballe::fortran::API.

◆ enqr()

float dballe::fortran::CommonAPIImplementation::enqr ( const char * param)
overridevirtual

Implements dballe::fortran::API.

◆ enqtimerange()

void dballe::fortran::CommonAPIImplementation::enqtimerange ( int & ptype,
int & p1,
int & p2 )
overridevirtual

Implements dballe::fortran::API.

◆ insert_attributes()

void dballe::fortran::CommonAPIImplementation::insert_attributes ( )
overridevirtual

Implements dballe::fortran::API.

◆ next_attribute()

const char * dballe::fortran::CommonAPIImplementation::next_attribute ( )
overridevirtual

Implements dballe::fortran::API.

◆ next_data()

wreport::Varcode dballe::fortran::CommonAPIImplementation::next_data ( )
overridevirtual

Implements dballe::fortran::API.

◆ next_station()

void dballe::fortran::CommonAPIImplementation::next_station ( )
overridevirtual

Implements dballe::fortran::API.

◆ query_attributes()

int dballe::fortran::CommonAPIImplementation::query_attributes ( )
overridevirtual

Implements dballe::fortran::API.

◆ remove_attributes()

void dballe::fortran::CommonAPIImplementation::remove_attributes ( )
overridevirtual

Implements dballe::fortran::API.

◆ set_station_context()

void dballe::fortran::CommonAPIImplementation::set_station_context ( )
overridevirtual

Implements dballe::fortran::API.

◆ setb()

void dballe::fortran::CommonAPIImplementation::setb ( const char * param,
signed char value )
overridevirtual

Implements dballe::fortran::API.

◆ setc()

void dballe::fortran::CommonAPIImplementation::setc ( const char * param,
const char * value )
overridevirtual

Implements dballe::fortran::API.

◆ setd()

void dballe::fortran::CommonAPIImplementation::setd ( const char * param,
double value )
overridevirtual

Implements dballe::fortran::API.

◆ setdate()

void dballe::fortran::CommonAPIImplementation::setdate ( int year,
int month,
int day,
int hour,
int min,
int sec )
overridevirtual

Implements dballe::fortran::API.

◆ setdatemax()

void dballe::fortran::CommonAPIImplementation::setdatemax ( int year,
int month,
int day,
int hour,
int min,
int sec )
overridevirtual

Implements dballe::fortran::API.

◆ setdatemin()

void dballe::fortran::CommonAPIImplementation::setdatemin ( int year,
int month,
int day,
int hour,
int min,
int sec )
overridevirtual

Implements dballe::fortran::API.

◆ seti()

void dballe::fortran::CommonAPIImplementation::seti ( const char * param,
int value )
overridevirtual

Implements dballe::fortran::API.

◆ setlevel()

void dballe::fortran::CommonAPIImplementation::setlevel ( int ltype1,
int l1,
int ltype2,
int l2 )
overridevirtual

Implements dballe::fortran::API.

◆ setr()

void dballe::fortran::CommonAPIImplementation::setr ( const char * param,
float value )
overridevirtual

Implements dballe::fortran::API.

◆ settimerange()

void dballe::fortran::CommonAPIImplementation::settimerange ( int ptype,
int p1,
int p2 )
overridevirtual

Implements dballe::fortran::API.

◆ unset()

void dballe::fortran::CommonAPIImplementation::unset ( const char * param)
overridevirtual

Implements dballe::fortran::API.

◆ unsetall()

void dballe::fortran::CommonAPIImplementation::unsetall ( )
overridevirtual

Implements dballe::fortran::API.

◆ unsetb()

void dballe::fortran::CommonAPIImplementation::unsetb ( )
overridevirtual

Implements dballe::fortran::API.


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