113 lines
1.5 KiB
C++
113 lines
1.5 KiB
C++
/*++
|
||
|
||
Copyright (c) 1991 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
pipestr.hxx
|
||
|
||
Abstract:
|
||
|
||
This module contains the declaration for the PIPE_STREAM class.
|
||
The PIPE_STREAM is a class derived from BUFFER_STREAM that provides
|
||
methods to read and write data to an anonymous pipe.
|
||
A PIPE_STREAM will have one of the following access: READ or WRITE.
|
||
|
||
|
||
Author:
|
||
|
||
Jaime Sasson (jaimes) 18-Apr-1991
|
||
|
||
Environment:
|
||
|
||
ULIB, User Mode
|
||
|
||
|
||
--*/
|
||
|
||
|
||
#if !defined( PIPE_STREAM_ )
|
||
|
||
#define PIPE_STREAM_
|
||
|
||
#include "bufstrm.hxx"
|
||
|
||
//
|
||
// Forward references
|
||
//
|
||
|
||
DECLARE_CLASS( PIPE_STREAM );
|
||
DECLARE_CLASS( WSTRING );
|
||
|
||
|
||
class PIPE_STREAM : public BUFFER_STREAM {
|
||
|
||
public:
|
||
|
||
friend class PIPE;
|
||
friend PSTREAM GetStandardStream( HANDLE, STREAMACCESS );
|
||
|
||
DECLARE_CAST_MEMBER_FUNCTION( PIPE_STREAM );
|
||
|
||
VIRTUAL
|
||
~PIPE_STREAM(
|
||
);
|
||
|
||
VIRTUAL
|
||
STREAMACCESS
|
||
QueryAccess(
|
||
) CONST;
|
||
|
||
|
||
protected:
|
||
|
||
|
||
DECLARE_CONSTRUCTOR( PIPE_STREAM );
|
||
|
||
NONVIRTUAL
|
||
BOOLEAN
|
||
Initialize(
|
||
IN HANDLE Handle,
|
||
IN STREAMACCESS Access
|
||
);
|
||
|
||
VIRTUAL
|
||
BOOLEAN
|
||
EndOfFile(
|
||
) CONST;
|
||
|
||
VIRTUAL
|
||
BOOLEAN
|
||
FillBuffer(
|
||
IN PBYTE Buffer,
|
||
IN ULONG BufferSize,
|
||
OUT PULONG BytesRead
|
||
);
|
||
|
||
VIRTUAL
|
||
HANDLE
|
||
QueryHandle(
|
||
) CONST;
|
||
|
||
#ifdef FE_SB
|
||
|
||
VIRTUAL
|
||
BOOLEAN
|
||
CheckIfLeadByte(
|
||
IN PUCHAR text,
|
||
IN ULONG offset
|
||
);
|
||
|
||
#endif
|
||
|
||
|
||
private:
|
||
|
||
HANDLE _PipeHandle;
|
||
STREAMACCESS _Access;
|
||
BOOLEAN _EndOfFile;
|
||
};
|
||
|
||
|
||
#endif // _PIPE_STREAM_
|