strstream.h
上传用户:kellyonhid
上传日期:2013-10-12
资源大小:932k
文件大小:2k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. /*ident "@(#)ctrans:incl-master/const-headers/strstream.h 1.7" */
  2. /*******************************************************************************
  3.  
  4. C++ source for the C++ Language System, Release 3.0.  This product
  5. is a new release of the original cfront developed in the computer
  6. science research center of AT&T Bell Laboratories.
  7. Copyright (c) 1991 AT&T and UNIX System Laboratories, Inc.
  8. Copyright (c) 1984, 1989, 1990 AT&T.  All Rights Reserved.
  9. THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE of AT&T and UNIX System
  10. Laboratories, Inc.  The copyright notice above does not evidence
  11. any actual or intended publication of such source code.
  12. *******************************************************************************/
  13. #ifndef STRSTREAMH
  14. #define STRSTREAMH
  15. #ifndef IOSTREAMH
  16. #include <iostream.h>
  17. #endif
  18. class strstreambuf : public streambuf
  19. {
  20. public: 
  21. strstreambuf() ;
  22. strstreambuf(int) ;
  23. strstreambuf(void* (*a)(long), void (*f)(void*)) ;
  24. strstreambuf(char* b, int size, char* pstart = 0 ) ;
  25. strstreambuf(unsigned char* b, int size, unsigned char* pstart = 0 ) ;
  26. #ifndef __cplusplus2
  27. int pcount();
  28. #endif
  29. void freeze(int n=1) ;
  30. char* str() ;
  31. ~strstreambuf() ;
  32. public: /* virtuals  */
  33. virtual int doallocate() ;
  34. virtual int overflow(int) ;
  35. virtual int underflow() ;
  36. virtual streambuf*
  37. setbuf(char*  p, int l) ;
  38. virtual streampos
  39. #ifdef __cplusplus2
  40. seekoff(streamoff,seek_dir,int) ;
  41. #else
  42. seekoff(streamoff,ios::seek_dir,int) ;
  43. #endif
  44. private:
  45. void init(char*,int,char*) ;
  46. void* (*afct)(long) ;
  47. void (*ffct)(void*) ;
  48. int ignore_oflow ;
  49. int froozen ;
  50. int auto_extend ;
  51. public:
  52. #ifndef __cplusplus2
  53. int isfrozen() { return froozen; }
  54. #endif
  55. } ;
  56. class strstreambase : public virtual ios {
  57. public:
  58. strstreambuf* rdbuf() ;
  59. protected:
  60. strstreambase(char*, int, char*) ;
  61. strstreambase() ;
  62. ~strstreambase() ;
  63. private:
  64. strstreambuf buf ; 
  65. } ;
  66. class istrstream : public strstreambase, public istream {
  67. public:
  68. istrstream(char* str);
  69. istrstream(char* str, int size ) ;
  70. #ifndef __cplusplus2
  71. istrstream(const char* str);
  72. istrstream(const char* str, int size);
  73. #endif
  74. ~istrstream() ;
  75. } ;
  76. class ostrstream : public strstreambase, public ostream {
  77. public:
  78. ostrstream(char* str, int size, int=ios::out) ;
  79. ostrstream() ;
  80. ~ostrstream() ;
  81. char* str() ;
  82. int pcount() ;
  83. } ;
  84. class strstream : public strstreambase, public iostream {
  85. public:
  86. strstream() ;
  87. strstream(char* str, int size, int mode) ;
  88. ~strstream() ;
  89. char* str() ;
  90. } ;
  91. #endif