gpp4  1.3.1
library_file.h
Go to the documentation of this file.
1 /*
2  library_file.h: header file for library_file.c
3  Copyright (C) 2001 CCLRC, Charles Ballard
4 
5  This library is free software: you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public
7  License as published by the Free Software Foundation, either
8  version 3 of the License, or (at your option) any later version.
9 
10  This library 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 GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with This library. If not, see
17  <http://www.gnu.org/licenses/>.
18 
19 */
20 
26 #ifndef __CCP4_LIB_FILE
27 #define __CCP4_LIB_FILE
28 
29 #include "ccp4_sysdep.h"
30 #include "ccp4_types.h"
31 
32 #ifdef __cplusplus
33 namespace CCP4 {
34 extern "C" {
35 #endif
36 
38 typedef struct _CFileStruct CCP4File;
39 
40 struct _CFileStruct {
41  char *name;
42  FILE *stream;
43  int fd;
44  unsigned int read : 1;
45  unsigned int write : 1;
46  unsigned int append : 1;
47  unsigned int binary : 1;
48  unsigned int scratch : 1 , : 3;
49  unsigned int buffered : 1;
50  unsigned int sync : 1, : 6;
51  unsigned int direct : 1, : 7;
52  unsigned int open : 1;
53  unsigned int own : 1;
54  unsigned int last_op : 2;
55  unsigned int getbuff : 1, : 4;
56  int iostat;
57  unsigned int mode : 8;
58  unsigned int itemsize : 8;
59  unsigned int iconvert : 8;
60  unsigned int fconvert: 8;
61  off_t length;
62  off_t loc;
63  size_t stamp_loc;
64  int (*_read) (CCP4File *, uint8 *, size_t);
65  int (*_write) (CCP4File *, const uint8 *, size_t);
66  char buff[8];
67  void *priv;
68 };
69 
70 
71 CCP4File *ccp4_file_open (const char *, const int);
72 
73 CCP4File *ccp4_file_open_file (const FILE *, const int);
74 
75 CCP4File *ccp4_file_open_fd (const int, const int);
76 
78 
80 
82 
83 int ccp4_file_mode ( const CCP4File*);
84 
85 int ccp4_file_setmode ( CCP4File*, const int);
86 
87 int ccp4_file_setstamp( CCP4File *, const size_t);
88 
89 int ccp4_file_itemsize( const CCP4File*);
90 
91 int ccp4_file_setbyte( CCP4File *, const int);
92 
93 int ccp4_file_byteorder( CCP4File *);
94 
95 int ccp4_file_is_write(const CCP4File *);
96 
97 int ccp4_file_is_read(const CCP4File *);
98 
99 int ccp4_file_is_append(const CCP4File *);
100 
101 int ccp4_file_is_scratch(const CCP4File *);
102 
103 int ccp4_file_is_buffered(const CCP4File *);
104 
105 int ccp4_file_status(const CCP4File *);
106 
107 const char *ccp4_file_name( CCP4File *);
108 
109 int ccp4_file_read ( CCP4File*, uint8 *, size_t);
110 
111 int ccp4_file_readcomp ( CCP4File*, uint8 *, size_t);
112 
113 int ccp4_file_readshortcomp ( CCP4File*, uint8 *, size_t);
114 
115 int ccp4_file_readfloat ( CCP4File*, uint8 *, size_t);
116 
117 int ccp4_file_readint ( CCP4File*, uint8 *, size_t);
118 
119 int ccp4_file_readshort ( CCP4File*, uint8 *, size_t);
120 
121 int ccp4_file_readchar ( CCP4File*, uint8 *, size_t);
122 
123 int ccp4_file_write ( CCP4File*, const uint8 *, size_t);
124 
125 int ccp4_file_writecomp ( CCP4File*, const uint8 *, size_t);
126 
127 int ccp4_file_writeshortcomp ( CCP4File*, const uint8 *, size_t);
128 
129 int ccp4_file_writefloat ( CCP4File*, const uint8 *, size_t);
130 
131 int ccp4_file_writeint ( CCP4File*, const uint8 *, size_t);
132 
133 int ccp4_file_writeshort ( CCP4File*, const uint8 *, size_t);
134 
135 int ccp4_file_writechar ( CCP4File*, const uint8 *, size_t);
136 
137 int ccp4_file_seek ( CCP4File*, long, int);
138 
139 void ccp4_file_rewind ( CCP4File*);
140 
141 void ccp4_file_flush (CCP4File *);
142 
143 long ccp4_file_length ( CCP4File*);
144 
145 long ccp4_file_tell ( CCP4File*);
146 
147 int ccp4_file_feof(CCP4File *);
148 
150 
151 void ccp4_file_fatal (CCP4File *, char *);
152 
153 char *ccp4_file_print(CCP4File *, char *, char *);
154 
155 int ccp4_file_raw_seek( CCP4File *, long, int);
156 int ccp4_file_raw_read ( CCP4File*, char *, size_t);
157 int ccp4_file_raw_write ( CCP4File*, const char *, size_t);
158 int ccp4_file_raw_setstamp( CCP4File *, const size_t);
159 #ifdef __cplusplus
160 }
161 }
162 #endif
163 
164 #endif /* __CCP4_LIB_FILE */
165 
166 /*
167  Local variables:
168  mode: font-lock
169  End:
170 */
ccp4_signal
void ccp4_signal(const int, const char *const, void(*)())
Definition: library_err.c:278
ccp4_fatal
void ccp4_fatal(const char *)
Definition: library_err.c:235
ccp4_file_status
int ccp4_file_status(const CCP4File *cfile)
Definition: library_file.c:601
ccp4_file_writeint
int ccp4_file_writeint(CCP4File *, const uint8 *, size_t)
Definition: library_file.c:1856
ccp4_utils.h
Utility functions.
ccp4_file_is_buffered
int ccp4_file_is_buffered(const CCP4File *)
Definition: library_file.c:590
ccp4_file_open_file
CCP4File * ccp4_file_open_file(const FILE *, const int)
Definition: library_file.c:780
_CFileStruct
Definition: library_file.h:40
ccp4_file_open_fd
CCP4File * ccp4_file_open_fd(const int, const int)
Definition: library_file.c:834
ccp4_file_open
CCP4File * ccp4_file_open(const char *filename, const int flag)
Definition: library_file.c:889
ccp4_file_fatal
void ccp4_file_fatal(CCP4File *, char *)
Definition: library_file.c:2155
ccp4_file_setstamp
int ccp4_file_setstamp(CCP4File *cfile, const size_t offset)
Definition: library_file.c:625
ccp4_file_writechar
int ccp4_file_writechar(CCP4File *, const uint8 *, size_t)
Definition: library_file.c:1972
ccp4_file_length
long ccp4_file_length(CCP4File *)
Definition: library_file.c:2055
ccp4_file_clearerr
void ccp4_file_clearerr(CCP4File *)
Definition: library_file.c:2141
ccp4_file_raw_write
int ccp4_file_raw_write(CCP4File *, const char *, size_t)
Definition: library_file.c:342
ccp4_file_raw_read
int ccp4_file_raw_read(CCP4File *cfile, char *buffer, size_t n_items)
Definition: library_file.c:294
ccp4_utils_malloc
void * ccp4_utils_malloc(size_t)
Definition: library_utils.c:401
ccp4_file_print
char * ccp4_file_print(CCP4File *, char *, char *)
Definition: library_file.c:2209
ccp4_file_readcomp
int ccp4_file_readcomp(CCP4File *cfile, uint8 *buffer, size_t nitems)
Definition: library_file.c:1161
ccp4_file_is_scratch
int ccp4_file_is_scratch(const CCP4File *)
Definition: library_file.c:578
ccp4_types.h
Header file containing various commonly used type definitions and some useful macros.
ccp4_file_is_scratch
int ccp4_file_is_scratch(const CCP4File *cfile)
Definition: library_file.c:578
ccp4_file_byte
int ccp4_file_byte(CCP4File *cfile)
Definition: library_file.c:763
ccp4_file_is_append
int ccp4_file_is_append(const CCP4File *cfile)
Definition: library_file.c:566
float_uint_uchar::i
uint32 i
Definition: ccp4_types.h:46
ccp4_error
void ccp4_error(const char *msg)
Definition: library_err.c:212
ccp4_file_readcomp
int ccp4_file_readcomp(CCP4File *, uint8 *, size_t)
Definition: library_file.c:1161
ccp4_file_readchar
int ccp4_file_readchar(CCP4File *cfile, uint8 *buffer, size_t nitems)
Definition: library_file.c:1528
ccp4_file_open_fd
CCP4File * ccp4_file_open_fd(const int fd, const int flag)
Definition: library_file.c:834
ccp4_file_is_read
int ccp4_file_is_read(const CCP4File *)
Definition: library_file.c:554
ccp4_file_error
int ccp4_file_error(CCP4File *cfile)
Definition: library_file.c:2180
ccp4_errno
int ccp4_errno
Definition: library_err.c:33
ccp4_file_read
int ccp4_file_read(CCP4File *cfile, uint8 *buffer, size_t nitems)
Definition: library_file.c:1137
ccp4_file_readshortcomp
int ccp4_file_readshortcomp(CCP4File *cfile, uint8 *buffer, size_t nitems)
Definition: library_file.c:1258
ccp4_file_status
int ccp4_file_status(const CCP4File *)
Definition: library_file.c:601
ccp4_file_flush
void ccp4_file_flush(CCP4File *)
Definition: library_file.c:2195
ccp4_file_is_read
int ccp4_file_is_read(const CCP4File *cfile)
Definition: library_file.c:554
ccp4_file_open_file
CCP4File * ccp4_file_open_file(const FILE *file, const int flag)
Definition: library_file.c:780
ccp4_file_readint
int ccp4_file_readint(CCP4File *cfile, uint8 *buffer, size_t nitems)
Definition: library_file.c:1412
ccp4_file_tell
long ccp4_file_tell(CCP4File *cfile)
Definition: library_file.c:2089
ccp4_file_setbyte
int ccp4_file_setbyte(CCP4File *, const int)
Definition: library_file.c:727
ccp4_file_open
CCP4File * ccp4_file_open(const char *, const int)
Definition: library_file.c:889
ccp4_file_readshort
int ccp4_file_readshort(CCP4File *, uint8 *, size_t)
Definition: library_file.c:1472
ccp4_file_is_write
int ccp4_file_is_write(const CCP4File *cfile)
Definition: library_file.c:542
ccp4_file_setstamp
int ccp4_file_setstamp(CCP4File *, const size_t)
Definition: library_file.c:625
ccp4_file_itemsize
int ccp4_file_itemsize(const CCP4File *cfile)
Definition: library_file.c:693
ccp4_file_writeshortcomp
int ccp4_file_writeshortcomp(CCP4File *, const uint8 *, size_t)
Definition: library_file.c:1698
ccp4_file_seek
int ccp4_file_seek(CCP4File *cfile, long offset, int whence)
Definition: library_file.c:2009
ccp4_file_writefloat
int ccp4_file_writefloat(CCP4File *cfile, const uint8 *buffer, size_t nitems)
Definition: library_file.c:1757
ccp4_file_writechar
int ccp4_file_writechar(CCP4File *cfile, const uint8 *buffer, size_t nitems)
Definition: library_file.c:1972
ccp4_file_length
long ccp4_file_length(CCP4File *cfile)
Definition: library_file.c:2055
ccp4_strerror
const char * ccp4_strerror(int)
Definition: library_err.c:190
ccp4_file_raw_setstamp
int ccp4_file_raw_setstamp(CCP4File *cfile, const size_t offset)
Definition: library_file.c:610
ccp4_file_is_write
int ccp4_file_is_write(const CCP4File *)
Definition: library_file.c:542
ccp4_file_name
const char * ccp4_file_name(CCP4File *)
Definition: library_file.c:710
ccp4_file_write
int ccp4_file_write(CCP4File *cfile, const uint8 *buffer, size_t nitems)
Definition: library_file.c:1566
ccp4_file_rarch
int ccp4_file_rarch(CCP4File *cfile)
Definition: library_file.c:1053
ccp4_file_readshort
int ccp4_file_readshort(CCP4File *cfile, uint8 *buffer, size_t nitems)
Definition: library_file.c:1472
ccp4_file_feof
int ccp4_file_feof(CCP4File *)
Definition: library_file.c:2124
ccp4_sysdep.h
System-dependent definitions.
ccp4_file_writeshort
int ccp4_file_writeshort(CCP4File *cfile, const uint8 *buffer, size_t nitems)
Definition: library_file.c:1915
ccp4_file_writeint
int ccp4_file_writeint(CCP4File *cfile, const uint8 *buffer, size_t nitems)
Definition: library_file.c:1856
ccp4_liberr_verbosity
int ccp4_liberr_verbosity(int iverb)
Definition: library_err.c:258
ccp4_file_read
int ccp4_file_read(CCP4File *, uint8 *, size_t)
Definition: library_file.c:1137
ccp4_signal
void ccp4_signal(const int code, const char *const msg, void(*callback)())
Definition: library_err.c:278
ccp4_file_raw_seek
int ccp4_file_raw_seek(CCP4File *, long, int)
Definition: library_file.c:384
ccp4_file_tell
long ccp4_file_tell(CCP4File *)
Definition: library_file.c:2089
ccp4_file_print
char * ccp4_file_print(CCP4File *cfile, char *msg_start, char *msg_end)
Definition: library_file.c:2209
ccp4_file_close
int ccp4_file_close(CCP4File *cfile)
Definition: library_file.c:1025
ccp4_file_warch
int ccp4_file_warch(CCP4File *cfile)
Definition: library_file.c:1102
ccp4_file_is_buffered
int ccp4_file_is_buffered(const CCP4File *cfile)
Definition: library_file.c:590
ccp4_file_rarch
int ccp4_file_rarch(CCP4File *)
Definition: library_file.c:1053
ccp4_file_raw_read
int ccp4_file_raw_read(CCP4File *, char *, size_t)
Definition: library_file.c:294
float_uint_uchar
Common data structure for floats, ints, and chars.
Definition: ccp4_types.h:44
error_system
Definition: library_err.c:162
ccp4_file_readshortcomp
int ccp4_file_readshortcomp(CCP4File *, uint8 *, size_t)
Definition: library_file.c:1258
ccp4_file_readchar
int ccp4_file_readchar(CCP4File *, uint8 *, size_t)
Definition: library_file.c:1528
ccp4_file_raw_seek
int ccp4_file_raw_seek(CCP4File *cfile, long offset, int whence)
Definition: library_file.c:384
ccp4_file_readint
int ccp4_file_readint(CCP4File *, uint8 *, size_t)
Definition: library_file.c:1412
ccp4_file_readfloat
int ccp4_file_readfloat(CCP4File *cfile, uint8 *buffer, size_t nitems)
Definition: library_file.c:1316
ccp4_file_rewind
void ccp4_file_rewind(CCP4File *)
Definition: library_file.c:2033
library_file.h
Functions for file i/o.
ccp4_file_readfloat
int ccp4_file_readfloat(CCP4File *, uint8 *, size_t)
Definition: library_file.c:1316
ccp4_file_warch
int ccp4_file_warch(CCP4File *)
Definition: library_file.c:1102
ccp4_file_setmode
int ccp4_file_setmode(CCP4File *cfile, const int mode)
Definition: library_file.c:649
ccp4_file_close
int ccp4_file_close(CCP4File *)
Definition: library_file.c:1025
ccp4_liberr_verbosity
int ccp4_liberr_verbosity(int iverb)
Definition: library_err.c:258
ccp4_errno.h
Header file for error handling routines Error codes based on system errors.
ccp4_strerror
const char * ccp4_strerror(int error)
Definition: library_err.c:190
float_uint_uchar::c
uint8 c[4]
Definition: ccp4_types.h:47
ccp4_file_seek
int ccp4_file_seek(CCP4File *, long, int)
Definition: library_file.c:2009
ccp4_file_name
const char * ccp4_file_name(CCP4File *cfile)
Definition: library_file.c:710
ccp4_file_itemsize
int ccp4_file_itemsize(const CCP4File *)
Definition: library_file.c:693
ccp4_file_err.h
Header file with file handling error codes.
ccp4_file_mode
int ccp4_file_mode(const CCP4File *)
Definition: library_file.c:677
ccp4_file_mode
int ccp4_file_mode(const CCP4File *cfile)
Definition: library_file.c:677
ccp4_file_writecomp
int ccp4_file_writecomp(CCP4File *, const uint8 *, size_t)
Definition: library_file.c:1589
ccp4_file_rewind
void ccp4_file_rewind(CCP4File *cfile)
Definition: library_file.c:2033
ccp4_file_is_append
int ccp4_file_is_append(const CCP4File *)
Definition: library_file.c:566
ccp4_file_writefloat
int ccp4_file_writefloat(CCP4File *, const uint8 *, size_t)
Definition: library_file.c:1757
ccp4_file_flush
void ccp4_file_flush(CCP4File *cfile)
Definition: library_file.c:2195
ccp4_file_raw_write
int ccp4_file_raw_write(CCP4File *cfile, const char *buffer, size_t n_items)
Definition: library_file.c:342
ccp4_file_fatal
void ccp4_file_fatal(CCP4File *cfile, char *message)
Definition: library_file.c:2155
ccp4_file_clearerr
void ccp4_file_clearerr(CCP4File *cfile)
Definition: library_file.c:2141
ccp4_file_raw_setstamp
int ccp4_file_raw_setstamp(CCP4File *, const size_t)
Definition: library_file.c:610
ccp4_file_feof
int ccp4_file_feof(CCP4File *cfile)
Definition: library_file.c:2124
ccp4_file_setbyte
int ccp4_file_setbyte(CCP4File *cfile, const int byte_order)
Definition: library_file.c:727
ccp4_file_writeshortcomp
int ccp4_file_writeshortcomp(CCP4File *cfile, const uint8 *buffer, size_t nitems)
Definition: library_file.c:1698
ccp4_file_writecomp
int ccp4_file_writecomp(CCP4File *cfile, const uint8 *buffer, size_t nitems)
Definition: library_file.c:1589
ccp4_file_setmode
int ccp4_file_setmode(CCP4File *, const int)
Definition: library_file.c:649
ccp4_file_writeshort
int ccp4_file_writeshort(CCP4File *, const uint8 *, size_t)
Definition: library_file.c:1915
MAX
#define MAX(x, y)
A macro that returns the maximum of x and y.
Definition: ccp4_types.h:103
ccp4_fatal
void ccp4_fatal(const char *message)
Definition: library_err.c:235
ccp4_file_write
int ccp4_file_write(CCP4File *, const uint8 *, size_t)
Definition: library_file.c:1566