00001 /* 00002 COSTA: Problem solving environment for data assimilation 00003 Copyright (C) 2005 Nils van Velzen 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Lesser General Public 00007 License as published by the Free Software Foundation; either 00008 version 2.1 of the License, or (at your option) any later version. 00009 00010 This library 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 GNU 00013 Lesser General Public License for more details. 00014 00015 You should have received a copy of the GNU Lesser General Public 00016 License along with this library; if not, write to the Free Software 00017 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 */ 00019 00020 #include <string.h> 00021 #include <stdio.h> 00022 #include <math.h> 00023 #include <memory.h> 00024 #include "cta.h" 00025 00026 typedef struct { 00027 int nkeys; 00028 int nmeasr; 00029 char **Keys; 00030 char ***Columns; 00031 } CTAI_ObsDescr_table; 00032 00033 #ifdef __cplusplus 00034 extern "C" { 00035 #endif 00036 00037 /** \brief Explanation 00038 * 00039 * \param memsize O The number of bytes which are necessary to 00040 * store one CTAI_SObs_sqlite3, with a 00041 * pointer to the contents (data), 00042 * but without the contents themselves. 00043 * \param retval O Error code (see cta_datatypes.h for possible 00044 * error codes) 00045 * \return no return value 00046 */ 00047 void CTAI_ObsDescr_table_Create_Size(int *memsize, int *retval); 00048 00049 /** \brief Allocate the memory which is necessary to 00050 * store the data necessary for a sqlite3-observer 00051 * 00052 * \param myhandle I Handle assigned by COSTA 00053 * \param descr I The sqlite3-observation description 00054 * for which the memory must be 00055 * allocated 00056 * \param usrdat I User data 00057 * \param retval O Error code 00058 * \return no return value 00059 */ 00060 void CTAI_ObsDescr_table_Create_Init(CTA_ObsDescr myhandle, CTAI_ObsDescr_table *descr, 00061 CTA_Handle this, CTA_Handle *usrdat, int *retval); 00062 00063 /** \brief Explanation 00064 * 00065 * \param IO descr 00066 * \param IO Keys 00067 * \param retval O Error code 00068 * \return no return value 00069 */ 00070 void CTAI_ObsDescr_table_Get_Keys(CTAI_ObsDescr_table *descr, CTA_Vector *Keys, int *retval); 00071 00072 /** \brief Explanation 00073 * 00074 * \param IO descr 00075 * \param IO nkeys 00076 * \param retval O Error code 00077 * \return no return value 00078 */ 00079 void CTAI_ObsDescr_table_Property_Count(CTAI_ObsDescr_table *descr, int *nkeys, int *retval); 00080 00081 /** \brief Explanation 00082 * 00083 * \param descr I 00084 * \param nobs I 00085 * \param retval O Error code 00086 * \return no return value 00087 */ 00088 void CTAI_ObsDescr_table_Observation_Count(CTAI_ObsDescr_table *descr, int *nobs, int *retval); 00089 00090 /** \brief Explanation 00091 * 00092 * \param descr I 00093 * \param Key I 00094 * \param Properties I 00095 * \param datatype I 00096 * \param nobs I 00097 * \param retval O Error code 00098 * \return no return value 00099 */ 00100 void CTAI_ObsDescr_table_Get_Properties(CTAI_ObsDescr_table *descr, const char *Key, CTA_Vector *Properties, 00101 CTA_Datatype *datatype,int *retval); 00102 00103 /** \brief Explanation 00104 * 00105 * \param descr I 00106 * \param nobs I 00107 * \param usrdat I 00108 * \param retval O Error code 00109 * \return no return value 00110 */ 00111 void CTAI_ObsDescr_table_Export(CTAI_ObsDescr_table *descr, CTA_Handle *usrdat, int *retval); 00112 00113 /** \brief Explanation 00114 * 00115 * \param descr I 00116 * \param retval O Error code 00117 * \return no return value 00118 */ 00119 void CTAI_ObsDescr_table_Free(CTAI_ObsDescr_table *descr, int *retval); 00120 00121 00122 /** \brief The vector h_func is filled with COSTA-function handles of the 00123 * implementations in this file. 00124 * \param hobsdescrcl I 00125 * \return no return value 00126 */ 00127 void CTA_ObsDescr_table_initialise(CTA_ObsDescrClass *hobsdescrcl); 00128 00129 #ifdef __cplusplus 00130 } 00131 #endif 00132