home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ool.zip / OOL / include / xpipe.h < prev    next >
C/C++ Source or Header  |  1997-02-23  |  2KB  |  45 lines

  1. #ifndef __OOL_XPIPE_H__
  2. #define __OOL_XPIPE_H__
  3.  
  4. /*===========================================================================*/
  5. /* OOL ------------------- the Open Object Library ------------- OS/2 Beta 1 */
  6. /*===========================================================================*/
  7. /*                              class: XPipe                                 */
  8. /*                       derived from: XIO                                   */
  9. /*                        last update: 9/96                                  */
  10. /*                      programmed by: Stefan von Brauk (sbrauk@gwdg.de)     */
  11. /*===========================================================================*/
  12.  
  13. #include "xio.h"
  14.  
  15. #ifdef OOL_FOR_OS2_X86
  16.    #define XPIPE_DEFAULTSIZE            4096
  17.    #define XPIPE_STDIN           0x00000000
  18.    #define XPIPE_STDOUT          0x00000001
  19.    #define XPIPE_STDERROR        0x00000002
  20. #endif
  21.  
  22.  
  23. class _export_ XPipe: public XIO
  24. {
  25.    private:
  26.       HFILE handle2;
  27.    public:
  28.       XPipe() { ;}
  29.       ~XPipe() { if(handle2) Close(); }
  30.       void Close();
  31.       static void CloseHandle( const HFILE h ) { DosClose( h ); }
  32.       static ULONG DuplicateHandle( const ULONG h1, ULONG& h2);
  33.       LONG Open( const LONG size = XPIPE_DEFAULTSIZE );
  34.       LONG GetReadHandle(void) const { return handle; }
  35.       LONG GetWriteHandle(void) const { return handle2; }
  36.       ULONG Write( const PVOID buffer, const ULONG sizeofbuffer)
  37.          {
  38.                ULONG r;
  39.                DosWrite(handle2, buffer, sizeofbuffer, &r);
  40.                return r;
  41.          }
  42. };
  43.  
  44. #endif
  45.