*
*/
-#include "squid.h"
+#include "squid-old.h"
+#include "comm/Connection.h"
#include "MemObject.h"
#include "HttpRequest.h"
#include "HttpReply.h"
return Pool().inUseCount();
}
+void
+MemObject::resetUrls(char const *aUrl, char const *aLog_url)
+{
+ safe_free(url);
+ safe_free(log_url); /* XXX account log_url */
+ log_url = xstrdup(aLog_url);
+ url = xstrdup(aUrl);
+}
+
MemObject::MemObject(char const *aUrl, char const *aLog_url)
{
debugs(20, 3, HERE << "new MemObject " << this);
object_sz = -1;
/* XXX account log_url */
+
+ swapout.decision = SwapOut::swNeedsCheck;
}
MemObject::~MemObject()
};
void
-MemObject::stat (MemBuf * mb) const
+MemObject::stat(MemBuf * mb) const
{
mb->Printf("\t%s %s\n",
RequestMethodStr(method), log_url);
+ if (vary_headers)
+ mb->Printf("\tvary_headers: %s\n", vary_headers);
mb->Printf("\tinmem_lo: %"PRId64"\n", inmem_lo);
mb->Printf("\tinmem_hi: %"PRId64"\n", data_hdr.endOffset());
mb->Printf("\tswapout: %"PRId64" bytes queued\n",
return data_hdr.endOffset();
}
+void
+MemObject::markEndOfReplyHeaders()
+{
+ const int hdr_sz = endOffset();
+ assert(hdr_sz >= 0);
+ assert(_reply);
+ _reply->hdr_sz = hdr_sz;
+}
+
int64_t
MemObject::size() const
{
return object_sz;
}
+int64_t
+MemObject::expectedReplySize() const
+{
+ debugs(20, 7, HERE << "object_sz: " << object_sz);
+ if (object_sz >= 0) // complete() has been called; we know the exact answer
+ return object_sz;
+
+ if (_reply) {
+ const int64_t clen = _reply->bodySize(method);
+ debugs(20, 7, HERE << "clen: " << clen);
+ if (clen >= 0 && _reply->hdr_sz > 0) // yuck: HttpMsg sets hdr_sz to 0
+ return clen + _reply->hdr_sz;
+ }
+
+ return -1; // not enough information to predict
+}
+
void
MemObject::reset()
{
* there will be a chunk of the data which is not in memory
* and is not yet on disk.
* The -1 makes sure the page isn't freed until storeSwapOut has
- * walked to the next page. (mem->swapout.memnode)
+ * walked to the next page.
*/
int64_t on_disk;
}
#endif
+
+int64_t
+MemObject::availableForSwapOut() const
+{
+ return endOffset() - swapout.queue_offset;
+}