home *** CD-ROM | disk | FTP | other *** search
- /* strstream.h -- class strstream declarations
-
- */
-
- /*
- * C/C++ Run Time Library - Version 6.0
- *
- * Copyright (c) 1990, 1993 by Borland International
- * All Rights Reserved.
- *
- */
-
- #ifndef __cplusplus
- #error Must use C++ for the type strstream.
- #endif
-
- #ifndef __STRSTREAM_H
- #define __STRSTREAM_H
-
- #if !defined(___DEFS_H)
- #include <_defs.h>
- #endif
-
- #if !defined(__IOSTREAM_H)
- #include <iostream.h>
- #endif
-
- #pragma option -Vo-
- #if defined(__BCOPT__) && !defined(_RTL_ALLOW_po) && !defined(__FLAT__)
- #pragma option -po-
- #endif
-
- #pragma option -a-
- #pragma option -RT
-
- _CLASSDEF(strstreambuf)
- _CLASSDEF(strstreambase)
- _CLASSDEF(istrstream)
- _CLASSDEF(ostrstream)
- _CLASSDEF(strstream)
-
- class _EXPCLASS strstreambuf : public streambuf {
- public:
- _RTLENTRY strstreambuf();
- _RTLENTRY strstreambuf(int n);
- _RTLENTRY strstreambuf(void _FAR * (*a)(long), void (*f)(void _FAR *));
- _RTLENTRY strstreambuf( char _FAR * _s, int,
- char _FAR * _strt=0);
- _RTLENTRY strstreambuf(signed char _FAR * _s, int,
- signed char _FAR * _strt=0);
- _RTLENTRY strstreambuf(unsigned char _FAR * _s, int,
- unsigned char _FAR * _strt=0);
- _RTLENTRY ~strstreambuf();
-
- void _RTLENTRY freeze(int = 1);
- char _FAR * _RTLENTRY str();
- virtual int _RTLENTRY doallocate();
- virtual int _RTLENTRY overflow(int);
- virtual int _RTLENTRY underflow();
- virtual int _RTLENTRY sync();
- virtual streambuf _FAR * _RTLENTRY setbuf(char _FAR *, int);
- virtual streampos _RTLENTRY seekoff(streamoff, ios::seek_dir, int);
-
- private:
- void _FAR * _RTLENTRY (*allocf)(long);
- void _RTLENTRY (*freef)(void _FAR *);
- short ssbflags;
- enum { dynamic = 1, frozen = 2, unlimited = 4 };
- int next_alloc;
-
- void _RTLENTRY init(char _FAR *, int, char _FAR *);
- };
-
-
- class _EXPCLASS strstreambase : public virtual ios {
- public:
- strstreambuf _FAR * _RTLENTRY rdbuf();
-
- protected:
- _RTLENTRY strstreambase(char _FAR *, int, char _FAR *);
- _RTLENTRY strstreambase();
- _RTLENTRY ~strstreambase();
- private:
- strstreambuf buf;
- };
- inline strstreambuf _FAR * _RTLENTRY strstreambase::rdbuf()
- { return &this->buf; }
-
-
- class _EXPCLASS istrstream : public strstreambase, public istream {
- public:
- _RTLENTRY istrstream( char _FAR *);
- _RTLENTRY istrstream(signed char _FAR *);
- _RTLENTRY istrstream(unsigned char _FAR *);
- _RTLENTRY istrstream( char _FAR *, int);
- _RTLENTRY istrstream(signed char _FAR *, int);
- _RTLENTRY istrstream(unsigned char _FAR *, int);
- _RTLENTRY ~istrstream();
- };
-
-
- class _EXPCLASS ostrstream : public strstreambase, public ostream {
- public:
- _RTLENTRY ostrstream( char _FAR *, int, int = ios::out);
- _RTLENTRY ostrstream(signed char _FAR *, int, int = ios::out);
- _RTLENTRY ostrstream(unsigned char _FAR *, int, int = ios::out);
- _RTLENTRY ostrstream();
- _RTLENTRY ~ostrstream();
-
- char _FAR * _RTLENTRY str();
- int _RTLENTRY pcount();
- };
- inline char _FAR * _RTLENTRY ostrstream::str()
- { return strstreambase::rdbuf()->str(); }
- inline int _RTLENTRY ostrstream::pcount()
- { return strstreambase::rdbuf()->out_waiting(); }
-
-
- class _EXPCLASS strstream : public strstreambase, public iostream {
- public:
- _RTLENTRY strstream();
- _RTLENTRY strstream( char _FAR *, int _sz, int _m);
- _RTLENTRY strstream(signed char _FAR *, int _sz, int _m);
- _RTLENTRY strstream(unsigned char _FAR *, int _sz, int _m);
- _RTLENTRY ~strstream();
-
- char _FAR * _RTLENTRY str();
- };
- inline char _FAR * _RTLENTRY strstream::str()
- { return strstreambase::rdbuf()->str(); }
-
- #pragma option -Vo.
- #if defined(__BCOPT__) && !defined(_RTL_ALLOW_po) && !defined(__FLAT__)
- #pragma option -po.
- #endif
-
- #pragma option -RT.
- #pragma option -a. /* restore default packing */
-
- #endif /* __STRSTREAM_H */
-