00001
00034 #ifndef LL_LLIOUTIL_H
00035 #define LL_LLIOUTIL_H
00036
00037 #include "llbuffer.h"
00038 #include "lliopipe.h"
00039 #include "llpumpio.h"
00040
00049 class LLIOFlush : public LLIOPipe
00050 {
00051 public:
00052 LLIOFlush() {}
00053 virtual ~LLIOFlush() {}
00054
00055 protected:
00056
00057
00059
00062 EStatus process_impl(
00063 const LLChannelDescriptors& channels,
00064 buffer_ptr_t& buffer,
00065 bool& eos,
00066 LLSD& context,
00067 LLPumpIO* pump);
00069 protected:
00070 };
00071
00078 class LLIOSleep : public LLIOPipe
00079 {
00080 public:
00081 LLIOSleep(F64 sleep_seconds) : mSeconds(sleep_seconds) {}
00082 virtual ~LLIOSleep() {}
00083
00084 protected:
00085
00086
00088
00091 EStatus process_impl(
00092 const LLChannelDescriptors& channels,
00093 buffer_ptr_t& buffer,
00094 bool& eos,
00095 LLSD& context,
00096 LLPumpIO* pump);
00098 protected:
00099 F64 mSeconds;
00100 };
00101
00107 class LLIOAddChain : public LLIOPipe
00108 {
00109 public:
00110 LLIOAddChain(const LLPumpIO::chain_t& chain, F32 timeout) :
00111 mChain(chain),
00112 mTimeout(timeout)
00113 {}
00114 virtual ~LLIOAddChain() {}
00115
00116 protected:
00117
00118
00120
00123 EStatus process_impl(
00124 const LLChannelDescriptors& channels,
00125 buffer_ptr_t& buffer,
00126 bool& eos,
00127 LLSD& context,
00128 LLPumpIO* pump);
00130
00131 protected:
00132 LLPumpIO::chain_t mChain;
00133 F32 mTimeout;
00134 };
00135
00155 class LLChangeChannel
00156 {
00157 public:
00164 LLChangeChannel(S32 is, S32 becomes);
00165
00169 void operator()(LLSegment& segment);
00170
00171 protected:
00172 S32 mIs;
00173 S32 mBecomes;
00174 };
00175
00176
00177 #endif // LL_LLIOUTIL_H