home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / c / objam01.lha / objam / runtime / streams.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-02-11  |  2.0 KB  |  64 lines

  1. /*
  2. ** ObjectiveAmiga: NeXTSTEP NXStream implementation for AmigaOS
  3. ** See GNU:lib/libobjam/ReadMe for details
  4. */
  5.  
  6.  
  7. #include <stdarg.h>
  8.  
  9. #include <libraries/objc.h>
  10.  
  11.  
  12. typedef struct __NXStream
  13. {
  14. } NXStream;
  15.  
  16.  
  17. /* File and port streams */
  18. NXStream *NXOpenFile(int fd, int mode);
  19. NXStream *NXOpenPort(port_t port, int mode);
  20.  
  21. /* Memory streams */
  22. NXStream *NXOpenMemory(const char *address, int size, int mode);
  23. NXStream *NXMapFile(const char *pathName, int mode);
  24. int NXSaveToFile(NXStream *stream, const char *name);
  25. void NXGetMemoryBuffer(NXStream *stream, char **streambuf, int *len, int *maxlen);
  26. void NXCloseMemory(NXStream *stream, int option);
  27.  
  28. /* Close a stream */
  29. void NXClose(NXStream *stream);
  30.  
  31. /* Flush a stream */
  32. int NXFlush(NXStream *stream);
  33.  
  34. /* Read/write unformatted data */
  35. int NXRead(NXStream *stream, void *buf, int count);
  36. int NXWrite(NXStream *stream, const void *buf, int count);
  37.  
  38. /* Read/write formatted data */
  39. int NXPutc(NXStream *stream, char c);
  40. int NXGetc(NXStream *stream);
  41. void NXUngetc(NXStream *stream);
  42. int NXScanf(NXStream *stream, const char *format,...);
  43. void NXPrintf(NXStream *stream, const char *format,...);
  44. int NXVScanf(NXStream *stream, const char *format, va_list argList);
  45. void NXVPrintf(NXStream *stream, const char *format, va_list argList);
  46.  
  47. /* Register a formatting procedure */
  48. typedef void NXPrintProc(NXStream *stream, void *item, void *procData);
  49. void NXRegisterPrintfProc(char formatChar, NXPrintProc *proc, void *procData);
  50.  
  51. /* Set or report current position */
  52. void NXSeek(NXStream *stream, long offset, int ptrName);
  53. long NXTell(NXStream *stream);
  54. BOOL NXAtEOS(NXStream *stream);
  55.  
  56. /* Support a user-defined stream */
  57. NXStream *NXStreamCreateFromZone(int mode, int createBuf, NXZone *zone);
  58. NXStream *NXStreamCreate(int mode, int createBuf);
  59. void NXStreamDestroy(NXStream *stream);
  60. int NXDefaultRead(NXStream *stream, void *buf, int count);
  61. int NXDefaultWrite(NXStream *stream, const void *buf, int count);
  62. int NXFill(NXStream *stream);
  63. void NXChangeBuffer(NXStream *stream);
  64.