00001 #ifndef __EH_IO_H__
00002 #define __EH_IO_H__
00003
00004 #include <stdio.h>
00005 #include <glib.h>
00006
00007 #if G_BYTE_ORDER==G_LITTLE_ENDIAN
00008
00009 gssize eh_fwrite_int32_to_be ( const void *ptr , gssize size , gssize nitems , FILE* stream );
00010 gssize eh_fwrite_int64_to_be ( const void *ptr , gssize size , gssize nitems , FILE* stream );
00011 gssize eh_fread_int32_from_be( const void *ptr , gssize size , gssize nitems , FILE* stream );
00012 gssize eh_fread_int64_from_be( const void *ptr , gssize size , gssize nitems , FILE* stream );
00013
00014 #define eh_fwrite_int32_to_le ( fwrite )
00015 #define eh_fwrite_int64_to_le ( fwrite )
00016 #define eh_fread_int32_from_le ( fwrite )
00017 #define eh_fread_int64_from_le ( fwrite )
00018
00019 #define eh_fwrite_dbl_to_be ( eh_fwrite_int64_to_be )
00020 #define eh_fwrite_flt_to_be ( eh_fwrite_int32_to_be )
00021 #define eh_fread_dbl_from_be ( eh_fread_int64_from_be )
00022 #define eh_fread_flt_from_be ( eh_fread_int32_from_be )
00023
00024 #define eh_fwrite_int32_swap ( eh_fwrite_int32_to_be )
00025 #define eh_fwrite_int64_swap ( eh_fwrite_int64_to_be )
00026 #define eh_fread_int32_swap ( eh_fread_int32_from_be )
00027 #define eh_fread_int64_swap ( eh_fread_int64_from_be )
00028
00029 #define eh_fread_flt_swap ( eh_fread_int32_from_be )
00030 #define eh_fread_dbl_swap ( eh_fread_int64_from_be )
00031 #define eh_fwrite_flt_swap ( eh_fwrite_int32_to_be )
00032 #define eh_fwrite_dbl_swap ( eh_fwrite_int64_to_be )
00033
00034 #else
00035
00036 gssize eh_fwrite_int32_to_le ( const void *ptr , gssize size , gssize nitems , FILE* stream );
00037 gssize eh_fwrite_int64_to_le ( const void *ptr , gssize size , gssize nitems , FILE* stream );
00038 gssize eh_fread_int32_from_le( const void *ptr , gssize size , gssize nitems , FILE* stream );
00039 gssize eh_fread_int64_from_le( const void *ptr , gssize size , gssize nitems , FILE* stream );
00040
00041 #define eh_fwrite_int32_to_be ( fwrite )
00042 #define eh_fwrite_int64_to_be ( fwrite )
00043 #define eh_fread_int32_from_be ( fwrite )
00044 #define eh_fread_int64_from_be ( fwrite )
00045
00046 #define eh_fwrite_dbl_to_le ( eh_fwrite_int64_to_le )
00047 #define eh_fwrite_flt_to_le ( eh_fwrite_int32_to_le )
00048 #define eh_fread_dbl_from_le ( eh_fread_int64_from_le )
00049 #define eh_fread_flt_from_le ( eh_fread_int32_from_le )
00050
00051 #define eh_fwrite_int32_swap ( eh_fwrite_int32_to_le )
00052 #define eh_fwrite_int64_swap ( eh_fwrite_int64_to_le )
00053 #define eh_fread_int32_swap ( eh_fread_int32_from_le )
00054 #define eh_fread_int64_swap ( eh_fread_int64_from_le )
00055
00056 #define eh_fread_flt_swap ( eh_fread_int32_from_le )
00057 #define eh_fread_dbl_swap ( eh_fread_int64_from_le )
00058 #define eh_fwrite_flt_swap ( eh_fwrite_int32_to_le )
00059 #define eh_fwrite_dbl_swap ( eh_fwrite_int64_to_le )
00060
00061 #endif
00062
00063 #if !defined( HAVE_GETLINE )
00064 gssize getline( gchar** lineptr , gsize *n , FILE* stream );
00065 #endif
00066
00067 gint read_double_vector(FILE *fp,double *val,int len);
00068 gint read_time_vector( FILE *fp , double *val , int len );
00069 gint read_int_vector(FILE *fp,int *val,int len);
00070
00071 gchar* eh_scan_str ( FILE* fp , GError** error );
00072 gchar** eh_scan_str_array ( FILE* fp , gint* len , GError** error );
00073 gint* eh_scan_int_array ( FILE* fp , gint* len , GError** error );
00074 double* eh_scan_dbl_array ( FILE* fp , gint* len , GError** error );
00075 gboolean* eh_scan_boolean_array ( FILE *fp , gint* len , GError** error );
00076
00077 void eh_print_msg ( int msg_level , char *function_name , char *msg );
00078 gchar* eh_input_str ( char* msg , char *default_str );
00079 gboolean eh_input_boolean ( char* msg , gboolean default_val );
00080 gchar* eh_get_input_val ( FILE* fp , char *msg , char *default_str );
00081
00082 #endif