1 /* 2 * gretl -- Gnu Regression, Econometrics and Time-series Library 3 * Copyright (C) 2001 Allin Cottrell and Riccardo "Jack" Lucchetti 4 * 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * 18 */ 19 20 #ifndef GRETL_BUNDLE_H_ 21 #define GRETL_BUNDLE_H_ 22 23 #define BUNDLE_PRINT "bundle-print" 24 #define BUNDLE_PLOT "bundle-plot" 25 #define BUNDLE_TEST "bundle-test" 26 #define BUNDLE_FCAST "bundle-fcast" 27 #define BUNDLE_EXTRA "bundle-extra" 28 #define GUI_MAIN "gui-main" 29 #define GUI_PRECHECK "gui-precheck" 30 #define LIST_MAKER "list-maker" 31 32 typedef enum { 33 BUNDLE_PLAIN, 34 BUNDLE_KALMAN 35 } BundleType; 36 37 typedef struct bundled_item_ bundled_item; 38 39 gretl_bundle *gretl_bundle_new (void); 40 41 int gretl_is_bundle (const char *name); 42 43 int type_can_be_bundled (GretlType type); 44 45 gretl_bundle *get_bundle_by_name (const char *name); 46 47 BundleType gretl_bundle_get_type (gretl_bundle *bundle); 48 49 void *gretl_bundle_get_content (gretl_bundle *bundle); 50 51 int gretl_bundles_swap_content (gretl_bundle *b1, gretl_bundle *b2); 52 53 void *gretl_bundle_get_data (gretl_bundle *bundle, const char *key, 54 GretlType *type, int *size, int *err); 55 56 void *gretl_bundle_steal_data (gretl_bundle *bundle, const char *key, 57 GretlType *type, int *size, int *err); 58 59 void *gretl_bundle_get_private_data (gretl_bundle *bundle); 60 61 GretlType gretl_bundle_get_member_type (gretl_bundle *bundle, 62 const char *key, 63 int *err); 64 65 int gretl_bundle_has_key (gretl_bundle *bundle, 66 const char *key); 67 68 gretl_matrix *gretl_bundle_get_matrix (gretl_bundle *bundle, 69 const char *key, 70 int *err); 71 72 double *gretl_bundle_get_series (gretl_bundle *bundle, 73 const char *key, 74 int *n, int *err); 75 76 int *gretl_bundle_get_list (gretl_bundle *bundle, 77 const char *key, 78 int *err); 79 80 double gretl_bundle_get_scalar (gretl_bundle *bundle, 81 const char *key, 82 int *err); 83 84 int gretl_bundle_get_int (gretl_bundle *bundle, 85 const char *key, 86 int *err); 87 88 int gretl_bundle_get_int_deflt (gretl_bundle *bundle, 89 const char *key, 90 int deflt); 91 92 int gretl_bundle_get_bool (gretl_bundle *bundle, 93 const char *key, 94 int deflt); 95 96 unsigned int gretl_bundle_get_unsigned (gretl_bundle *bundle, 97 const char *key, 98 int *err); 99 100 const char *gretl_bundle_get_string (gretl_bundle *bundle, 101 const char *key, 102 int *err); 103 104 gretl_array *gretl_bundle_get_array (gretl_bundle *bundle, 105 const char *key, 106 int *err); 107 108 gretl_bundle *gretl_bundle_get_bundle (gretl_bundle *bundle, 109 const char *key, 110 int *err); 111 112 const char *gretl_bundle_get_note (gretl_bundle *bundle, const char *key); 113 114 const char *gretl_bundle_get_creator (gretl_bundle *bundle); 115 116 const char *bundled_item_get_key (bundled_item *item); 117 118 void *bundled_item_get_data (bundled_item *item, GretlType *type, 119 int *size); 120 121 const char *bundled_item_get_note (bundled_item *item); 122 123 int gretl_bundle_donate_data (gretl_bundle *bundle, const char *key, 124 void *ptr, GretlType type, int size); 125 126 int gretl_bundle_set_data (gretl_bundle *bundle, const char *key, 127 void *ptr, GretlType type, int size); 128 129 int gretl_bundle_set_string (gretl_bundle *bundle, const char *key, 130 const char *str); 131 132 int gretl_bundle_set_scalar (gretl_bundle *bundle, const char *key, 133 double val); 134 135 int gretl_bundle_set_int (gretl_bundle *bundle, const char *key, 136 int val); 137 138 int gretl_bundle_set_unsigned (gretl_bundle *bundle, const char *key, 139 unsigned int val); 140 141 int gretl_bundle_set_series (gretl_bundle *bundle, const char *key, 142 const double *x, int n); 143 144 int gretl_bundle_set_list (gretl_bundle *bundle, const char *key, 145 const int *list); 146 147 int gretl_bundle_set_matrix (gretl_bundle *bundle, const char *key, 148 const gretl_matrix *m); 149 150 int gretl_bundle_set_note (gretl_bundle *bundle, const char *key, 151 const char *note); 152 153 int gretl_bundle_delete_data (gretl_bundle *bundle, const char *key); 154 155 int gretl_bundle_rekey_data (gretl_bundle *bundle, const char *oldkey, 156 const char *newkey); 157 158 int gretl_bundle_copy_as (const char *name, const char *copyname); 159 160 gretl_bundle *gretl_bundle_copy (const gretl_bundle *bundle, int *err); 161 162 int gretl_bundle_set_creator (gretl_bundle *b, const char *name); 163 164 int gretl_bundle_print (gretl_bundle *bundle, PRN *prn); 165 166 int gretl_bundle_print_tree (gretl_bundle *bundle, PRN *prn); 167 168 void gretl_bundle_debug_print (gretl_bundle *bundle, const char *msg); 169 170 int gretl_bundle_is_stacked (gretl_bundle *b); 171 172 int gretl_bundle_get_n_keys (gretl_bundle *b); 173 174 int gretl_bundle_get_n_members (gretl_bundle *b); 175 176 GList *gretl_bundle_get_lists (gretl_bundle *b); 177 178 int gretl_bundle_has_content (gretl_bundle *b); 179 180 gretl_bundle *gretl_bundle_pull_from_stack (const char *name, 181 int *err); 182 183 gretl_bundle *gretl_bundle_union (const gretl_bundle *bundle1, 184 const gretl_bundle *bundle2, 185 int *err); 186 187 int gretl_bundle_append (gretl_bundle *bundle1, 188 const gretl_bundle *bundle2); 189 190 void gretl_bundle_destroy (gretl_bundle *bundle); 191 192 void gretl_bundle_void_content (gretl_bundle *bundle); 193 194 void gretl_bundle_serialize (gretl_bundle *b, const char *name, 195 PRN *prn); 196 197 gretl_bundle *gretl_bundle_deserialize (void *p1, void *p2, 198 int *err); 199 200 int gretl_bundle_write_to_file (gretl_bundle *b, 201 const char *fname, 202 int to_dotdir); 203 204 char *gretl_bundle_write_to_buffer (gretl_bundle *b, 205 int rank, 206 int *bytes, 207 int *err); 208 209 gretl_bundle *gretl_bundle_read_from_file (const char *fname, 210 int from_dotdir, 211 int *err); 212 213 gretl_bundle *gretl_bundle_read_from_buffer (const char *buf, 214 int len, 215 int *err); 216 217 gretl_array *gretl_bundle_get_keys (gretl_bundle *b, int *err); 218 219 char **gretl_bundle_get_keys_raw (gretl_bundle *b, int *ns); 220 221 gretl_bundle *get_sysinfo_bundle (int *err); 222 223 void *sysinfo_bundle_get_data (const char *key, 224 GretlType *type, 225 int *err); 226 227 gretl_bundle *bundle_from_model (MODEL *pmod, 228 DATASET *dset, 229 int *err); 230 231 gretl_bundle *bundle_from_system (void *ptr, 232 int type, 233 DATASET *dset, 234 int *err); 235 236 gretl_bundle *kalman_bundle_new (gretl_matrix *M[], 237 int copy[], int nmat, 238 int *err); 239 240 int gretl_bundle_extract_args (gretl_bundle *defaults, 241 gretl_bundle *input, 242 gretl_array *reqd, 243 PRN *prn, int *err); 244 245 GList *gretl_bundle_get_sorted_items (gretl_bundle *b); 246 247 void gretl_bundle_cleanup (void); 248 249 #endif /* GRETL_BUNDLE_H_ */ 250 251 252 253