Squid internals The Storage Manager (src/store*.c) Store Clients - typical flow sc = storeClientListAdd(e, mydata); /* become a store client */ .. storeClientCopy(sc, e, seen_offset, copy_offset, size, buf, callback, mydata) /* request a part of an object: * sc = store client, obtained from above * e = store entry, same as above * seen_offset = what we've seen already (generally for header parsing) * copy_offset = what we would like * size = how big a buffer we have * buf = buffer to copy data into * callback = callback to call when the data is avaliable (or not!) * mydata = data for callback, same as above */ .. storeUnregister(sc, e, mydata); /* Detach from StoreEntry */