libdballe 9.6
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
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
 
CommonAPIImplementationoperator= (const CommonAPIImplementation &)=delete
 
CommonAPIImplementationoperator= (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 Operationtest_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 enqi (const char *param)=0
 
virtual signed char enqb (const char *param)=0
 
virtual float enqr (const char *param)=0
 
virtual double enqd (const char *param)=0
 
virtual bool enqc (const char *param, char *res, unsigned res_len)=0
 
virtual void seti (const char *param, int value)=0
 
virtual void setb (const char *param, signed char value)=0
 
virtual void setr (const char *param, float value)=0
 
virtual void setd (const char *param, double value)=0
 
virtual void setc (const char *param, const char *value)=0
 
virtual void set_station_context ()=0
 
virtual void enqlevel (int &ltype1, int &l1, int &ltype2, int &l2)=0
 
virtual void setlevel (int ltype1, int l1, int ltype2, int l2)=0
 
virtual void enqtimerange (int &ptype, int &p1, int &p2)=0
 
virtual void settimerange (int ptype, int p1, int p2)=0
 
virtual void enqdate (int &year, int &month, int &day, int &hour, int &min, int &sec)=0
 
virtual void setdate (int year, int month, int day, int hour, int min, int sec)=0
 
virtual void setdatemin (int year, int month, int day, int hour, int min, int sec)=0
 
virtual void setdatemax (int year, int month, int day, int hour, int min, int sec)=0
 
virtual void unset (const char *param)=0
 
virtual void unsetall ()=0
 
virtual void unsetb ()=0
 
virtual int query_stations ()=0
 
virtual void next_station ()=0
 
virtual int query_data ()=0
 
virtual wreport::Varcode next_data ()=0
 
virtual void insert_data ()=0
 
virtual void remove_data ()=0
 
virtual int query_attributes ()=0
 
virtual const char * next_attribute ()=0
 
virtual void insert_attributes ()=0
 
virtual void remove_attributes ()=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
 
virtual const char * describe_level (int ltype1, int l1, int ltype2, int l2)=0
 
virtual const char * describe_timerange (int ptype, int p1, int p2)=0
 
virtual const char * describe_var (const char *varcode, const char *value)=0
 
virtual void commit ()=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::Varcodeinput_query_varlist
 
core::Data input_data
 
std::vector< wreport::Varcodeselected_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

Operationoperation = 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: