-
-
-
/*
- * $Id: HttpBody.cc,v 1.14 1998/07/21 17:26:12 wessels Exp $
- *
- * DEBUG: section 56 HTTP Message Body
- * AUTHOR: Alex Rousskov
- *
- * SQUID Internet Object Cache http://squid.nlanr.net/Squid/
- * --------------------------------------------------------
- *
- * Squid is the result of efforts by numerous individuals from the
- * Internet community. Development is led by Duane Wessels of the
- * National Laboratory for Applied Network Research and funded by
- * the National Science Foundation.
+ * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
- *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
*/
+/* DEBUG: section 56 HTTP Message Body */
+
#include "squid.h"
+#include "HttpBody.h"
+#include "MemBuf.h"
+HttpBody::HttpBody() : mb(new MemBuf)
+{}
-void
-httpBodyInit(HttpBody * body)
+HttpBody::~HttpBody()
{
- body->mb = MemBufNull;
+ delete mb;
}
void
-httpBodyClean(HttpBody * body)
+HttpBody::clear()
{
- assert(body);
- if (!memBufIsNull(&body->mb))
- memBufClean(&body->mb);
+ mb->clean();
}
/* set body by absorbing mb */
void
-httpBodySet(HttpBody * body, MemBuf * mb)
+HttpBody::setMb(MemBuf * mb_)
{
- assert(body);
- assert(memBufIsNull(&body->mb));
- body->mb = *mb; /* absorb */
+ delete mb;
+ /* note: protection against assign-to-self is not needed
+ * as MemBuf doesn't have a copy-constructor. If such a constructor
+ * is ever added, add such protection here.
+ */
+ mb = mb_; /* absorb */
}
void
-httpBodyPackInto(const HttpBody * body, Packer * p)
+HttpBody::packInto(Packer * p) const
{
- assert(body && p);
- if (body->mb.size)
- packerAppend(p, body->mb.buf, body->mb.size);
-}
+ assert(p);
-#if UNUSED_CODE
-const char *
-httpBodyPtr(const HttpBody * body)
-{
- return body->mb.buf ? body->mb.buf : "";
+ if (mb->contentSize())
+ packerAppend(p, mb->content(), mb->contentSize());
}
-#endif
+