]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/MemBuf.cc
SourceFormat Enforcement
[thirdparty/squid.git] / src / MemBuf.cc
index 723a2e56626a8b69292ec42beb2b01d2eb6dc5c4..b953da0c7974890a9f3459176e66390eadc31c2c 100644 (file)
@@ -41,7 +41,7 @@
  * Rationale:
  * ----------
  *
- * Here is how one would comm_write an object without MemBuffer:
+ * Here is how one would Comm::Write an object without MemBuffer:
  *
  * {
  * -- allocate:
@@ -53,7 +53,7 @@
  * ...
  *
  * -- write
- * comm_write(buf, free, ...);
+ * Comm::Write(buf, free, ...);
  * }
  *
  * The whole "packing" idea is quite messy: We are given a buffer of fixed
@@ -91,7 +91,7 @@
  * ...
  *
  * -- write
- * comm_write_mbuf(fd, buf, handler, data);
+ * Comm::Write(fd, buf, callback);
  *
  * -- *iff* you did not give the buffer away, free it yourself
  * -- buf.clean();
  \endverbatim
  */
 
-/* if you have configure you can use this */
-#if defined(HAVE_CONFIG_H)
-#include "config.h"
-#endif
+#include "squid.h"
+#include "MemBuf.h"
+#include "profiler/Profiler.h"
+#include "protos.h"
 
 #ifdef VA_COPY
 #undef VA_COPY
 #define VA_COPY __va_copy
 #endif
 
-#include "squid.h"
-#include "MemBuf.h"
-
 /* local constants */
 
 /* default values for buffer sizes, used by memBufDefInit */
@@ -131,7 +128,6 @@ MemBuf::init()
     init(MEM_BUF_INIT_SIZE, MEM_BUF_MAX_SIZE);
 }
 
-
 /** init with specific sizes */
 void
 MemBuf::init(mb_size_t szInit, mb_size_t szMax)
@@ -217,7 +213,7 @@ void MemBuf::consume(mb_size_t shiftSize)
     PROF_start(MemBuf_consume);
     if (shiftSize > 0) {
         if (shiftSize < cSize)
-            xmemmove(buf, buf + shiftSize, cSize - shiftSize);
+            memmove(buf, buf + shiftSize, cSize - shiftSize);
 
         size -= shiftSize;
 
@@ -226,6 +222,15 @@ void MemBuf::consume(mb_size_t shiftSize)
     PROF_stop(MemBuf_consume);
 }
 
+// removes last tailSize bytes
+void MemBuf::truncate(mb_size_t tailSize)
+{
+    const mb_size_t cSize = contentSize();
+    assert(0 <= tailSize && tailSize <= cSize);
+    assert(!stolen); /* not frozen */
+    size -= tailSize;
+}
+
 /**
  * calls memcpy, appends exactly size bytes,
  * extends buffer or creates buffer if needed.
@@ -242,9 +247,7 @@ void MemBuf::append(const char *newContent, mb_size_t sz)
             grow(size + sz + 1);
 
         assert(size + sz <= capacity); /* paranoid */
-
-        xmemcpy(space(), newContent, sz);
-
+        memcpy(space(), newContent, sz);
         appended(sz);
     }
     PROF_stop(MemBuf_append);
@@ -282,12 +285,12 @@ MemBuf::Printf(const char *fmt,...)
     va_end(args);
 }
 
-
 /**
  * vPrintf for other printf()'s to use; calls vsnprintf, extends buf if needed
  */
 void
-MemBuf::vPrintf(const char *fmt, va_list vargs) {
+MemBuf::vPrintf(const char *fmt, va_list vargs)
+{
 #ifdef VA_COPY
     va_list ap;
 #endif
@@ -332,7 +335,7 @@ MemBuf::vPrintf(const char *fmt, va_list vargs) {
     if (!size || buf[size - 1]) {
         assert(!buf[size]);
     } else {
-        size--;
+        --size;
     }
 }
 
@@ -345,7 +348,8 @@ MemBuf::vPrintf(const char *fmt, va_list vargs) {
  \retval free() function to be used.
  */
 FREE *
-MemBuf::freeFunc() {
+MemBuf::freeFunc()
+{
     FREE *ff;
     assert(buf);
     assert(!stolen);   /* not frozen */
@@ -359,7 +363,8 @@ MemBuf::freeFunc() {
  * Grows (doubles) internal buffer to satisfy required minimal capacity
  */
 void
-MemBuf::grow(mb_size_t min_cap) {
+MemBuf::grow(mb_size_t min_cap)
+{
     size_t new_cap;
     size_t buf_cap;
 
@@ -396,18 +401,18 @@ MemBuf::grow(mb_size_t min_cap) {
     PROF_stop(MemBuf_grow);
 }
 
-
 /* Reports */
 
 /**
  * Puts report on MemBuf _module_ usage into mb
  */
 void
-memBufReport(MemBuf * mb) {
+memBufReport(MemBuf * mb)
+{
     assert(mb);
     mb->Printf("memBufReport is not yet implemented @?@\n");
 }
 
-#ifndef _USE_INLINE_
+#if !_USE_INLINE_
 #include "MemBuf.cci"
 #endif