1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#include "test.h"
#define READ_ANY
int main(int argc,char** argv)
{
#ifdef READ_ANY
char buffer[1024*1024*80];
long length = sizeof(buffer);
#endif
#ifdef GRIB_READ_ANY
char buffer[1024*1024*80];
size_t length= sizeof(buffer);
grib_context *gc=0;
#endif
#ifdef GRIB_READ_ANY_ALLOC
size_t length = 0;
unsigned char* buffer=0;
grib_context *gc=0;
#endif
FILE *f;
grib_handle *g = 0;
int e;
f = fopen(argc > 1 ? argv[1]: "data" ,"r");
if(!f)
{
perror(argc > 1 ? argv[1]: "data");
exit(1);
}
#ifdef READ_ANY
printf("#---- readany used ----\n");
while((e = readany(f,buffer,&length)) != -1)
#endif
#ifdef GRIB_READ_ANY
printf("#---- grib_read_any used ----\n");
while((e = grib_read_any(gc,f,buffer,&length)) != GRIB_END_OF_FILE)
#endif
#ifdef GRIB_READ_ANY_ALLOC
printf("#---- grib_read_any_alloc used ----\n");
while((e = grib_read_any_alloc(gc,f,&buffer,&length)) != GRIB_END_OF_FILE)
#endif
{
if(e != 0 )
{
printf("grib_read_any error %d\n",e);
exit(e);
}
g = grib_handle_new_from_message(0,buffer,length);
grib_dump_content(g,stdout,"serialize",0,NULL);
grib_handle_delete(g);
}
exit(0);
}
|