00001
00033 #ifndef LL_LLPIPEUTIL_H
00034 #define LL_LLPIPEUTIL_H
00035
00036 #include "lliopipe.h"
00037
00038
00042 F32 pump_loop(LLPumpIO* pump, F32 seconds);
00043
00048 class LLPipeStringInjector : public LLIOPipe
00049 {
00050 public:
00051 LLPipeStringInjector(const std::string& string)
00052 : mString(string)
00053 { }
00054
00055 protected:
00056 virtual EStatus process_impl(
00057 const LLChannelDescriptors& channels,
00058 buffer_ptr_t& buffer,
00059 bool& eos,
00060 LLSD& context,
00061 LLPumpIO* pump);
00062
00063 private:
00064 std::string mString;
00065 };
00066
00067
00068 class LLPipeStringExtractor : public LLIOPipe
00069 {
00070 public:
00071 LLPipeStringExtractor() : mDone(false) { }
00072
00073 bool done() { return mDone; }
00074 std::string string() { return mString; }
00075
00076 protected:
00077
00078 virtual EStatus process_impl(
00079 const LLChannelDescriptors& channels,
00080 LLIOPipe::buffer_ptr_t& buffer,
00081 bool& eos,
00082 LLSD& context,
00083 LLPumpIO* pump);
00084
00085 private:
00086 bool mDone;
00087 std::string mString;
00088 };
00089
00093 class LLIOFuzz : public LLIOPipe
00094 {
00095 public:
00096 LLIOFuzz(int byte_count) : mByteCount(byte_count) {}
00097
00098 protected:
00099 virtual EStatus process_impl(
00100 const LLChannelDescriptors& channels,
00101 buffer_ptr_t& buffer,
00102 bool& eos,
00103 LLSD& context,
00104 LLPumpIO* pump);
00105
00106 private:
00107 int mByteCount;
00108 };
00109
00113 class LLIOASCIIFuzz : public LLIOPipe
00114 {
00115 public:
00116 LLIOASCIIFuzz(int byte_count) : mByteCount(byte_count) {}
00117
00118 protected:
00119 virtual EStatus process_impl(
00120 const LLChannelDescriptors& channels,
00121 buffer_ptr_t& buffer,
00122 bool& eos,
00123 LLSD& context,
00124 LLPumpIO* pump);
00125
00126 private:
00127 int mByteCount;
00128 };
00129
00130
00134 class LLIONull : public LLIOPipe
00135 {
00136 public:
00137 LLIONull() {}
00138
00139 protected:
00140 virtual EStatus process_impl(
00141 const LLChannelDescriptors& channels,
00142 buffer_ptr_t& buffer,
00143 bool& eos,
00144 LLSD& context,
00145 LLPumpIO* pump);
00146 };
00147
00148 #endif // LL_LLPIPEUTIL_H