125 if (source ==
NULL || slen < 1) {
129 assert(Buffer !=
NULL);
145 if (BlockHeader.CompCount == 0xFFFF) {
146 int len = ((unsigned)slen < (
sizeof(BlockHeader)-Counter)) ? slen : (
sizeof(BlockHeader)-Counter);
147 memmove(&Buffer[Counter], source, len);
148 source = ((
char *)source) + len;
155 if (Counter ==
sizeof(BlockHeader)) {
156 memmove(&BlockHeader, Buffer,
sizeof(BlockHeader));
166 int len = (slen < (BlockHeader.CompCount-Counter)) ? slen : (BlockHeader.CompCount-Counter);
168 memmove(&Buffer[Counter], source, len);
170 source = ((
char *)source) + len;
177 if (Counter == BlockHeader.CompCount) {
179 total +=
Pipe::Put(Buffer2, BlockHeader.UncompCount);
181 BlockHeader.CompCount = 0xFFFF;
193 int tocopy = (slen < (BlockSize-Counter)) ? slen : (BlockSize-Counter);
194 memmove(&Buffer[Counter], source, tocopy);
195 source = ((
char *)source) + tocopy;
199 if (Counter == BlockSize) {
200 int len =
LCW_Comp(Buffer, Buffer2, BlockSize);
202 BlockHeader.CompCount = (
unsigned short)len;
203 BlockHeader.UncompCount = (
unsigned short)BlockSize;
204 total +=
Pipe::Put(&BlockHeader,
sizeof(BlockHeader));
214 while (slen >= BlockSize) {
215 int len =
LCW_Comp(source, Buffer2, BlockSize);
217 source = ((
char *)source) + BlockSize;
220 BlockHeader.CompCount = (
unsigned short)len;
221 BlockHeader.UncompCount = (
unsigned short)BlockSize;
222 total +=
Pipe::Put(&BlockHeader,
sizeof(BlockHeader));
231 memmove(Buffer, source, slen);
261 assert(Buffer !=
NULL);
276 if (BlockHeader.CompCount == 0xFFFF) {
288 total +=
Pipe::Put(&BlockHeader,
sizeof(BlockHeader));
291 BlockHeader.CompCount = 0xFFFF;
300 int len =
LCW_Comp(Buffer, Buffer2, Counter);
302 BlockHeader.CompCount = (
unsigned short)len;
303 BlockHeader.UncompCount = (
unsigned short)Counter;
304 total +=
Pipe::Put(&BlockHeader,
sizeof(BlockHeader));