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