-/* $Id$
-
-This file is part of libmspio
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
#ifndef MSP_IO_PIPE_H_
#define MSP_IO_PIPE_H_
class Pipe: public Base
{
-public:
- Pipe();
- void set_block(bool);
- void close();
- Handle get_event_handle();
- ~Pipe();
private:
Handle handle[2];
#ifdef WIN32
OVERLAPPED *overlapped;
- Handle event;
- unsigned buf_size;
- char *buffer;
- unsigned buf_avail;
- char *buf_next;
+ Handle event;
+ unsigned buf_size;
+ char *buffer;
+ unsigned buf_avail;
+ char *buf_next;
#endif
- unsigned do_write(const char *, unsigned);
- unsigned do_read(char *, unsigned);
+public:
+ Pipe();
+ ~Pipe();
+
+ void close();
+
+ void set_block(bool);
+
+protected:
+ virtual unsigned do_write(const char *, unsigned);
+ virtual unsigned do_read(char *, unsigned);
+
+public:
+ virtual Handle get_event_handle();
};
} // namespace IO