1/* 2* Copyright 2010, Haiku. All rights reserved. 3* Distributed under the terms of the MIT License. 4* 5* Authors: 6* Ithamar R. Adema <ithamar.adema@team-embedded.nl> 7*/ 8#ifndef FILTERIO_H 9#define FILTERIO_H 10 11 12#include <DataIO.h> 13#include <OS.h> 14 15 16class BString; 17 18 19class FilterIO : public BDataIO 20{ 21public: 22 FilterIO(int argc, const char** argv, 23 const char** envp = NULL); 24 FilterIO(const BString& cmdline); 25 ~FilterIO(); 26 27 status_t InitCheck() const 28 { 29 return fInitErr; 30 } 31 32 ssize_t Read(void* buffer, size_t size); 33 ssize_t Write(const void* buffer, size_t size); 34private: 35 int fStdIn, fStdOut, fStdErr; 36 thread_id fThreadId; 37 status_t fInitErr; 38 39 status_t InitData(int argc, const char** argv, 40 const char** envp = NULL); 41 thread_id PipeCommand(int argc, const char** argv, int& in, 42 int& out, int& err, const char** envp = NULL); 43}; 44 45#endif // FILTERIO_H 46