libdballe 4.0.18
|
00001 /* 00002 * DB-ALLe - Archive for punctual meteorological data 00003 * 00004 * Copyright (C) 2005--2010 ARPA-SIM <urpsim@smr.arpa.emr.it> 00005 * 00006 * This program is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU General Public License as published by 00008 * the Free Software Foundation; either version 2 of the License. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program; if not, write to the Free Software 00017 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00018 * 00019 * Author: Enrico Zini <enrico@enricozini.com> 00020 */ 00021 00022 #ifndef DBA_VAR_H 00023 #define DBA_VAR_H 00024 00025 #ifdef __cplusplus 00026 extern "C" { 00027 #endif 00028 00035 #include <dballe/core/error.h> 00036 #include <dballe/core/vartable.h> 00037 #include <stdio.h> 00038 00039 struct _dba_var; 00049 typedef struct _dba_var* dba_var; 00050 00051 struct _dba_var_attr; 00055 typedef struct _dba_var_attr* dba_var_attr_iterator; 00056 00057 00069 dba_err dba_var_create(dba_varinfo info, dba_var* var); 00070 00084 dba_err dba_var_createi(dba_varinfo info, int val, dba_var* var); 00085 00099 dba_err dba_var_created(dba_varinfo info, double val, dba_var* var); 00100 00114 dba_err dba_var_createc(dba_varinfo info, const char* val, dba_var* var); 00115 00127 dba_err dba_var_create_local(dba_varcode code, dba_var* var); 00128 00140 dba_err dba_var_copy(dba_var source, dba_var* dest); 00141 00148 void dba_var_delete(dba_var var); 00149 00160 int dba_var_equals(const dba_var var1, const dba_var var2); 00161 00172 dba_err dba_var_enqi(dba_var var, int* val); 00173 00184 dba_err dba_var_enqd(dba_var var, double* val); 00185 00196 dba_err dba_var_enqc(dba_var var, const char** val); 00197 00208 dba_err dba_var_seti(dba_var var, int val); 00209 00220 dba_err dba_var_setd(dba_var var, double val); 00221 00232 dba_err dba_var_setc(dba_var var, const char* val); 00233 00242 dba_err dba_var_unset(dba_var var); 00243 00257 dba_err dba_var_enqa(dba_var var, dba_varcode code, dba_var* attr); 00258 00271 dba_err dba_var_seta(dba_var var, dba_var attr); 00272 00285 dba_err dba_var_seta_nocopy(dba_var var, dba_var attr); 00286 00297 dba_err dba_var_unseta(dba_var var, dba_varcode code); 00298 00306 void dba_var_clear_attrs(dba_var var); 00307 00317 dba_varcode dba_var_code(dba_var var); 00318 00327 dba_varinfo dba_var_info(dba_var var); 00328 00338 const char* dba_var_value(dba_var var); 00339 00348 dba_var_attr_iterator dba_var_attr_iterate(dba_var var); 00349 00359 dba_var_attr_iterator dba_var_attr_iterator_next(dba_var_attr_iterator iter); 00360 00369 dba_var dba_var_attr_iterator_attr(dba_var_attr_iterator iter); 00370 00371 00382 dba_err dba_var_copy_val(dba_var dest, dba_var orig); 00383 00394 dba_err dba_var_copy_attrs(dba_var dest, dba_var src); 00395 00409 dba_err dba_var_convert(dba_var orig, dba_varinfo info, dba_var* conv); 00410 00422 int dba_var_encode_int(double fval, dba_varinfo info); 00423 00435 double dba_var_decode_int(int val, dba_varinfo info); 00436 00445 void dba_var_print(dba_var var, FILE* out); 00446 00460 void dba_var_diff(dba_var var1, dba_var var2, int* diffs, FILE* out); 00461 00462 00463 struct lua_State; 00464 00468 dba_err dba_var_lua_push(dba_var var, struct lua_State* L); 00469 00475 dba_var dba_var_lua_check(struct lua_State* L, int idx); 00476 00477 00478 #ifdef __cplusplus 00479 } 00480 #endif 00481 00482 #endif 00483 /* vim:set ts=4 sw=4: */