00001 00034 #include "linden_common.h" 00035 #include "llioutil.h" 00036 00040 LLIOPipe::EStatus LLIOFlush::process_impl( 00041 const LLChannelDescriptors& channels, 00042 buffer_ptr_t& buffer, 00043 bool& eos, 00044 LLSD& context, 00045 LLPumpIO* pump) 00046 { 00047 eos = true; 00048 return STATUS_OK; 00049 } 00050 00054 LLIOPipe::EStatus LLIOSleep::process_impl( 00055 const LLChannelDescriptors& channels, 00056 buffer_ptr_t& buffer, 00057 bool& eos, 00058 LLSD& context, 00059 LLPumpIO* pump) 00060 { 00061 if(mSeconds > 0.0) 00062 { 00063 if(pump) pump->sleepChain(mSeconds); 00064 mSeconds = 0.0; 00065 return STATUS_BREAK; 00066 } 00067 return STATUS_DONE; 00068 } 00069 00073 LLIOPipe::EStatus LLIOAddChain::process_impl( 00074 const LLChannelDescriptors& channels, 00075 buffer_ptr_t& buffer, 00076 bool& eos, 00077 LLSD& context, 00078 LLPumpIO* pump) 00079 { 00080 pump->addChain(mChain, mTimeout); 00081 return STATUS_DONE; 00082 } 00083 00087 LLChangeChannel::LLChangeChannel(S32 is, S32 becomes) : 00088 mIs(is), 00089 mBecomes(becomes) 00090 { 00091 } 00092 00093 void LLChangeChannel::operator()(LLSegment& segment) 00094 { 00095 if(segment.isOnChannel(mIs)) 00096 { 00097 segment.setChannel(mBecomes); 00098 } 00099 }