2 //metadoc File copyright Steve Dekorte 2002
3 //metadoc File license BSD revised
6 #define IOFILE_DEFINED 1
18 #define ISFILE(self) \
19 IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoFile_rawClone)
21 typedef IoObject IoFile
;
29 void *info
; /* reserved for use in OS specific extensions */
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);