00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00064 #ifndef DK_STREAM_INC
00065 #define DK_STREAM_INC 1
00066
00067 #include <dk.h>
00068 #include <dktypes.h>
00069
00070 #if DK_HAVE_ZLIB_H
00071 #include <zlib.h>
00072 #endif
00073 #if DK_HAVE_BZLIB_H
00074 #include <bzlib.h>
00075 #endif
00076
00077 #if defined(EXTERN)
00078 #undef EXTERN
00079 #endif
00080 #ifndef DK_STREAM_C
00081 #if !DK_HAVE_PROTOTYPES
00082 #define EXTERN extern
00083 #else
00084 #define EXTERN
00085 #endif
00086 #else
00087 #define EXTERN
00088 #endif
00089
00090 #if defined(__cplusplus)
00091 extern "C" {
00092 #endif
00093
00094
00095
00102 EXTERN
00103 dk_stream_t *dkstream_new DK_PR((void *data, dk_stream_fct_t *fct));
00104
00105
00106
00110 EXTERN
00111 void dkstream_delete DK_PR((dk_stream_t *st));
00112
00113
00114
00125 EXTERN
00126 dk_stream_t *dkstream_openfile DK_PR((char *n, char *m, int i, int *r));
00127
00128
00129
00140 EXTERN
00141 dk_stream_t *dkstream_opengz DK_PR((char *n, char *m, int i, int *r));
00142
00143
00144
00155 EXTERN
00156 dk_stream_t *dkstream_openbz2 DK_PR((char *n, char *m, int i, int *r));
00157
00158
00159
00166 EXTERN
00167 dk_stream_t *dkstream_for_file DK_PR((FILE *f));
00168
00169
00170
00171 #if DK_HAVE_ZLIB_H
00172
00178 EXTERN
00179 dk_stream_t *dkstream_for_gz DK_PR((gzFile gzf));
00180 #endif
00181
00182
00183
00184 #if DK_HAVE_BZLIB_H
00185
00191 EXTERN
00192 dk_stream_t *dkstream_for_bz2 DK_PR((BZFILE *bzf));
00193 #endif
00194
00195
00196
00202 EXTERN
00203 void dkstream_close DK_PR((dk_stream_t *st));
00204
00205
00206
00213 EXTERN
00214 size_t dkstream_write DK_PR((dk_stream_t *s, char *b, size_t l));
00215
00216
00217
00224 EXTERN
00225 size_t dkstream_read DK_PR((dk_stream_t *s, char *b, size_t l));
00226
00227
00228
00236 EXTERN
00237 int dkstream_wb_word DK_PR((dk_stream_t *s, dk_word w));
00238
00239
00240
00248 EXTERN
00249 int dkstream_wb_uword DK_PR((dk_stream_t *s, dk_uword w));
00250
00251
00252
00260 EXTERN
00261 int dkstream_wb_dword DK_PR((dk_stream_t *s, dk_dword w));
00262
00263
00264
00272 EXTERN
00273 int dkstream_wb_udword DK_PR((dk_stream_t *s, dk_udword w));
00274
00275
00276
00286 EXTERN
00287 int dkstream_wb_string DK_PR((dk_stream_t *s, char *str));
00288
00289
00290
00298 EXTERN
00299 int dkstream_rb_word DK_PR((dk_stream_t *s, dk_word *w));
00300
00301
00302
00310 EXTERN
00311 int dkstream_rb_uword DK_PR((dk_stream_t *s, dk_uword *w));
00312
00313
00314
00322 EXTERN
00323 int dkstream_rb_dword DK_PR((dk_stream_t *s, dk_dword *d));
00324
00325
00326
00334 EXTERN
00335 int dkstream_rb_udword DK_PR((dk_stream_t *s, dk_udword *d));
00336
00337
00338
00349 EXTERN
00350 char *dkstream_rb_string DK_PR((dk_stream_t *s));
00351
00352
00353
00361 EXTERN
00362 int dkstream_puts DK_PR((dk_stream_t *s, char *b));
00363
00371 EXTERN
00372 int dkstream_puts_double_use_exp DK_PR((dk_stream_t *s, double d));
00373
00374
00381 EXTERN
00382 int dkstream_puts_double DK_PR((dk_stream_t *s, double d));
00383
00384
00385
00391 EXTERN int
00392 dkstream_puts_ul DK_PR((dk_stream_t *s, unsigned long u));
00393
00394
00395
00401 EXTERN int
00402 dkstream_puts_long DK_PR((dk_stream_t *s, long l));
00403
00404
00405
00414 EXTERN int
00415 dkstream_puts_array DK_PR((dk_stream_t *s, char **a));
00416
00417
00418
00428 EXTERN
00429 char *dkstream_gets DK_PR((dk_stream_t *s, char *b, size_t l));
00430
00431
00432
00437 EXTERN
00438 unsigned long dkstream_get_bytes_written DK_PR((dk_stream_t *s));
00439
00440
00441
00446 EXTERN
00447 dk_stream_suffix_t *dkstream_get_read_suffixes DK_PR((void));
00448
00449
00450
00455 EXTERN
00456 dk_stream_suffix_t *dkstream_get_write_suffixes DK_PR((void));
00457
00463 EXTERN int
00464 dkstream_puts_double_no_exp DK_PR((dk_stream_t *s, double d));
00465
00475 EXTERN int
00476 dkstream_puts_double_str_no_exp DK_PR((dk_stream_t *s, char *t));
00477
00484 EXTERN void
00485 dkstream_set_double_no_exponent DK_PR((dk_stream_t *s, int fl));
00486
00491 EXTERN int
00492 dkstream_get_double_no_exponent DK_PR((dk_stream_t *s));
00493
00494 #if defined(__cplusplus)
00495 }
00496 #endif
00497
00498
00500 #define DK_STREAM_CMD_TEST 1
00501
00503 #define DK_STREAM_CMD_RDBUF 2
00504
00506 #define DK_STREAM_CMD_WRBUF 3
00507
00509 #define DK_STREAM_CMD_FINAL 4
00510
00512 #define DK_STREAM_CMD_FINISH 5
00513
00515 #define DK_STREAM_CMD_REWIND 6
00516
00518 #define DK_STREAM_CMD_FLUSH 7
00519
00521 #define DK_STREAM_CMD_AT_END 8
00522
00524 #define DK_STREAM_CMD_GETS 9
00525
00527 #define DK_STREAM_CMD_PUTS 10
00528
00529
00530
00532 #define DK_STREAM_OPT_DOUBLE_NO_EXPONENT 1
00533
00534
00535 #define DK_STREAM_FLAGS_STATE_USABLE 1
00536 #define DK_STREAM_FLAGS_STATE_CLOSED 0
00537 #define DK_STREAM_FLAGS_STATE_MASK 1
00538 #define DK_STREAM_FLAGS_FILTER 4
00539
00540 #endif
00541