make doc update
[io.git] / libs / iovm / source / IoFile.h
blob735b7db4b74524fcefa18552ea58a9fb7a59ac33
2 //metadoc File copyright Steve Dekorte 2002
3 //metadoc File license BSD revised
5 #ifndef IOFILE_DEFINED
6 #define IOFILE_DEFINED 1
8 #include "Common.h"
9 #include "IoObject.h"
10 #include "UArray.h"
11 #include "IoNumber.h"
12 #include "IoSeq.h"
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
18 #define ISFILE(self) \
19 IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoFile_rawClone)
21 typedef IoObject IoFile;
23 typedef struct
25 FILE *stream;
26 IoSymbol *path;
27 IoSymbol *mode;
28 unsigned char flags;
29 void *info; /* reserved for use in OS specific extensions */
30 } IoFileData;
32 #define IOFILE_FLAGS_NONE 0x0
33 #define IOFILE_FLAGS_PIPE 0x1
34 #define IOFILE_FLAGS_NONBLOCKING 0x2
36 IOVM_API IoFile *IoFile_proto(void *state);
37 IOVM_API IoFile *IoFile_rawClone(IoFile *self);
38 IOVM_API IoFile *IoFile_new(void *state);
39 IOVM_API IoFile *IoFile_newWithPath_(void *state, IoSymbol *path);
40 IOVM_API IoFile *IoFile_cloneWithPath_(IoFile *self, IoSymbol *path);
41 IOVM_API IoFile *IoFile_newWithStream_(void *state, FILE *stream);
43 void IoFile_free(IoFile *self);
44 void IoFile_mark(IoFile *self);
46 IOVM_API void IoFile_writeToStream_(IoFile *self, BStream *stream);
47 IOVM_API void *IoFile_readFromStream_(IoFile *self, BStream *stream);
49 void IoFile_justClose(IoFile *self);
50 int IoFile_justExists(IoFile *self);
51 int IoFile_create(IoFile *self);
53 /* ----------------------------------------------------------- */
55 IoObject *IoFile_descriptor(IoFile *self, IoObject *locals, IoMessage *m);
57 IoObject *IoFile_standardInput(IoFile *self, IoObject *locals, IoMessage *m);
58 IoObject *IoFile_standardOutput(IoFile *self, IoObject *locals, IoMessage *m);
59 IoObject *IoFile_standardError(IoFile *self, IoObject *locals, IoMessage *m);
61 IoObject *IoFile_setPath(IoFile *self, IoObject *locals, IoMessage *m);
62 IoObject *IoFile_path(IoFile *self, IoObject *locals, IoMessage *m);
63 IoObject *IoFile_lastPathComponent(IoFile *self, IoObject *locals, IoMessage *m);
65 IoObject *IoFile_mode(IoFile *self, IoObject *locals, IoMessage *m);
67 IoObject *IoFile_temporaryFile(IoFile *self, IoObject *locals, IoMessage *m);
69 IoObject *IoFile_openForReading(IoFile *self, IoObject *locals, IoMessage *m);
70 IoObject *IoFile_openForUpdating(IoFile *self, IoObject *locals, IoMessage *m);
71 IoObject *IoFile_openForAppending(IoFile *self, IoObject *locals, IoMessage *m);
73 IoObject *IoFile_open(IoFile *self, IoObject *locals, IoMessage *m);
74 IoObject *IoFile_popen(IoFile *self, IoObject *locals, IoMessage *m);
75 IoObject *IoFile_close(IoFile *self, IoObject *locals, IoMessage *m);
77 IoObject *IoFile_flush(IoFile *self, IoObject *locals, IoMessage *m);
78 IoObject *IoFile_rawAsString(IoFile *self);
79 IoObject *IoFile_contents(IoFile *self, IoObject *locals, IoMessage *m);
80 IoObject *IoFile_asBuffer(IoFile *self, IoObject *locals, IoMessage *m);
81 IoObject *IoFile_exists(IoFile *self, IoObject *locals, IoMessage *m);
82 IoObject *IoFile_remove(IoFile *self, IoObject *locals, IoMessage *m);
83 IoObject *IoFile_truncateToSize(IoFile *self, IoObject *locals, IoMessage *m);
84 IoObject *IoFile_moveTo_(IoFile *self, IoObject *locals, IoMessage *m);
85 IoObject *IoFile_write(IoFile *self, IoObject *locals, IoMessage *m);
86 IoObject *IoFile_readLine(IoFile *self, IoObject *locals, IoMessage *m);
87 IoObject *IoFile_readLines(IoFile *self, IoObject *locals, IoMessage *m);
88 IoObject *IoFile_readToBufferLength(IoFile *self, IoObject *locals, IoMessage *m);
89 IoObject *IoFile_readStringOfLength_(IoFile *self, IoObject *locals, IoMessage *m);
90 IoObject *IoFile_readBufferOfLength_(IoFile *self, IoObject *locals, IoMessage *m);
91 IoObject *IoFile_rewind(IoFile *self, IoObject *locals, IoMessage *m);
92 IoObject *IoFile_position_(IoFile *self, IoObject *locals, IoMessage *m);
93 IoObject *IoFile_position(IoFile *self, IoObject *locals, IoMessage *m);
94 IoObject *IoFile_positionAtEnd(IoFile *self, IoObject *locals, IoMessage *m);
95 IoObject *IoFile_isAtEnd(IoFile *self, IoObject *locals, IoMessage *m);
97 IoObject *IoFile_size(IoFile *self, IoObject *locals, IoMessage *m);
98 IoObject *IoFile_isOpen(IoFile *self, IoObject *locals, IoMessage *m);
99 IoObject *IoFile_assertOpen(IoFile *self, IoObject *locals, IoMessage *m);
100 IoObject *IoFile_assertWrite(IoFile *self, IoObject *locals, IoMessage *m);
102 IoObject *IoFile_at(IoFile *self, IoObject *locals, IoMessage *m);
103 IoObject *IoFile_atPut(IoFile *self, IoObject *locals, IoMessage *m);
104 IoObject *IoFile_foreach(IoFile *self, IoObject *locals, IoMessage *m);
105 IoObject *IoFile_foreachLine(IoFile *self, IoObject *locals, IoMessage *m);
107 //IoObject *IoFile_rawDo(IoFile *self, IoObject *context);
108 //IoObject *IoFile_do(IoFile *self, IoObject *locals, IoMessage *m);
110 #ifdef __cplusplus
112 #endif
113 #endif