home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (c) 1996 by Lele Gaifax. All Rights Reserved
- *
- * This software may be used and distributed freely for any purpose
- * provided that this notice is included unchanged on any and all
- * copies. The author does not warrant or guarantee this software in
- * any way.
- *
- * This file is part of the PyObjC package.
- *
- * $RCSfile: OC_Stream.h,v $
- * $Revision: 1.1.1.3 $
- * $Date: 1996/10/23 17:19:35 $
- *
- * Created Fri Oct 4 12:28:57 1996.
- */
-
- #ifndef _OC_Stream_H
- #define _OC_Stream_H
-
- #ifndef GNU_RUNTIME
-
- @protocol Streaming
-
- - (int) readByte:(char *) cp;
- - (int) readBytes:(void *) buf length:(unsigned int) len;
-
- - (int) writeByte:(char) c;
- - (int) writeBytes:(void *) buf length:(unsigned int) len;
-
- - (void) setStreamPosition:(long) pos seekMode:(int) mode;
- - (long) streamPosition;
-
- - (BOOL) isAtEof;
-
- - (void) flushStream;
-
- - (void) close;
- - (BOOL) isClosed;
-
- - (BOOL) isWritable;
-
- @end
-
- #else
-
- #include <gnustep/base/Streaming.h>
-
- #endif
-
- #ifndef WITH_FOUNDATION
-
- #include <objc/Object.h>
- #include <streams/streams.h>
-
- #define OCS_READONLY NX_READONLY
- #define OCS_WRITEONLY NX_WRITEONLY
- #define OCS_READWRITE NX_READWRITE
- #define OCS_APPEND (OCS_READWRITE << 1)
-
- #define OCS_FROMSTART NX_FROMSTART
- #define OCS_FROMCURRENT NX_FROMCURRENT
- #define OCS_FROMEND NX_FROMEND
-
- /*#C This class wraps the NeXTSTEP stream functions into an object
- similar to the GNUstep Stream. */
- @interface OC_Stream : Object <Streaming>
- {
- NXStream *stream;
- BOOL freeWhenDone;
- }
-
- //#M Initialize the version number of this class.
- + (void) initialize;
-
- + newFromFilename:(const char *) name;
- + newFromFilename:(const char *) name withMode:(int) m;
-
- + newFromMemory:(void *) mem length:(unsigned int) len;
- + newFromMemory:(void *) mem length:(unsigned int) len withMode:(int) m;
-
- + newFromStream:(NXStream *) s;
-
- - initFromStream:(NXStream *) s;
-
- - (void) freeWhenDone:(BOOL) yn;
-
- - (BOOL) saveToFilename:(const char *) name;
-
- - (NXStream *) stream;
-
- @end /* OC_Stream class interface */
-
- #else /* WITH_FOUNDATION */
-
- #include <Foundation/NSData.h>
-
- #define OCS_READONLY 0
- #define OCS_WRITEONLY 1
- #define OCS_READWRITE 2
- #define OCS_APPEND 3
-
- #define OCS_FROMSTART STREAM_SEEK_FROM_START
- #define OCS_FROMCURRENT STREAM_SEEK_FROM_CURRENT
- #define OCS_FROMEND STREAM_SEEK_FROM_END
-
- /*#C This class wraps OpenStep NSData into an object similar to
- a stream. */
- @interface OC_Stream : NSData <Streaming>
- {
- unsigned long offset;
- }
-
- + newFromFilename:(const char *) name;
- + newFromFilename:(const char *) name withMode:(int) m;
-
- + newFromMemory:(void *) mem length:(unsigned int) len;
- + newFromMemory:(void *) mem length:(unsigned int) len withMode:(int) m;
-
- - (BOOL) saveToFilename:(const char *) name;
-
- @end /* OC_Stream class interface */
-
- #endif /* WITH_FOUNDATION */
-
- #endif /* _OC_Stream_H */
-
- /*
- ** Local Variables:
- ** change-log-default-name:"../ChangeLog.PyObjC"
- ** End:
- */
-