This is an automated email from the ASF dual-hosted git repository.
JosiahWI pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new 1a10d127a7 Remove TsBuffer.h (#13281)
1a10d127a7 is described below
commit 1a10d127a7dee3eb73abaaec3322ab871c9c54af
Author: JosiahWI <[email protected]>
AuthorDate: Tue Jun 16 12:30:22 2026 -0500
Remove TsBuffer.h (#13281)
Fixes #1570.
This removes the unused `ConstBuffer` class. The header was not
included anywhere. The only mention of `ConstBuffer` in the docs
is in the history of `TextView`. Therefore, that mention has
been preserved.
---
include/tscore/TsBuffer.h | 508 ----------------------------------------------
1 file changed, 508 deletions(-)
diff --git a/include/tscore/TsBuffer.h b/include/tscore/TsBuffer.h
deleted file mode 100644
index 857437eb51..0000000000
--- a/include/tscore/TsBuffer.h
+++ /dev/null
@@ -1,508 +0,0 @@
-/** @file
- Definitions for a buffer type, to carry a reference to a chunk of memory.
-
- @section license License
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-#pragma once
-
-#if defined _MSC_VER
-#include <stddef.h>
-#else
-#include <unistd.h>
-#endif
-
-// For memcmp()
-#include <memory.h>
-#include <string_view>
-
-/// Apache Traffic Server commons.
-namespace ts
-{
-struct ConstBuffer;
-/** A chunk of writable memory.
- A convenience class because we pass this kind of pair frequently.
-
- @note The default construct leaves the object
- uninitialized. This is for performance reasons. To construct an
- empty @c Buffer use @c Buffer(0).
- */
-struct Buffer {
- using self = Buffer; ///< Self reference type.
- using pseudo_bool = bool (self::*)() const;
-
- char *_ptr = nullptr; ///< Pointer to base of memory chunk.
- size_t _size = 0; ///< Size of memory chunk.
-
- /// Default constructor (empty buffer).
- Buffer();
-
- /** Construct from pointer and size.
- @note Due to ambiguity issues do not call this with
- two arguments if the first argument is 0.
- */
- Buffer(char *ptr, ///< Pointer to buffer.
- size_t n ///< Size of buffer.
- );
- /** Construct from two pointers.
- @note This presumes a half open range, (start, end]
- */
- Buffer(char *start, ///< First valid character.
- char *end ///< First invalid character.
- );
-
- /** Equality.
- @return @c true if @a that refers to the same memory as @a this,
- @c false otherwise.
- */
- bool operator==(self const &that) const;
- /** Inequality.
- @return @c true if @a that does not refer to the same memory as @a this,
- @c false otherwise.
- */
- bool operator!=(self const &that) const;
- /** Equality for a constant buffer.
- @return @c true if @a that refers to the same memory as @a this.
- @c false otherwise.
- */
- bool operator==(ConstBuffer const &that) const;
- /** Inequality.
- @return @c true if @a that does not refer to the same memory as @a this,
- @c false otherwise.
- */
- bool operator!=(ConstBuffer const &that) const;
-
- /// @return The first character in the buffer.
- char operator*() const;
- /** Discard the first character in the buffer.
- @return @a this object.
- */
- self &operator++();
-
- /// Check for empty buffer.
- /// @return @c true if the buffer has a zero pointer @b or size.
- bool operator!() const;
- /// Check for non-empty buffer.
- /// @return @c true if the buffer has a non-zero pointer @b and size.
- operator pseudo_bool() const;
-
- /// @name Accessors.
- //@{
- /// Get the data in the buffer.
- char *data() const;
- /// Get the size of the buffer.
- size_t size() const;
- //@}
-
- /// Set the chunk.
- /// Any previous values are discarded.
- /// @return @c this object.
- self &set(char *ptr, ///< Buffer address.
- size_t n = 0 ///< Buffer size.
- );
- /// Reset to empty.
- self &reset();
-};
-
-/** A chunk of read only memory.
- A convenience class because we pass this kind of pair frequently.
- */
-struct ConstBuffer {
- using self = ConstBuffer; ///< Self reference type.
- using pseudo_bool = bool (self::*)() const;
-
- char const *_ptr = nullptr; ///< Pointer to base of memory chunk.
- size_t _size = 0; ///< Size of memory chunk.
-
- /// Default constructor (empty buffer).
- ConstBuffer();
-
- /** Construct from pointer and size.
- */
- ConstBuffer(char const *ptr, ///< Pointer to buffer.
- size_t n ///< Size of buffer.
- );
- /** Construct from two pointers.
- @note This presumes a half open range (start, end]
- @note Due to ambiguity issues do not invoke this with
- @a start == 0.
- */
- ConstBuffer(char const *start, ///< First valid character.
- char const *end ///< First invalid character.
- );
- /// Construct from writable buffer.
- ConstBuffer(Buffer const &buffer ///< Buffer to copy.
- );
-
- /** Equality.
- @return @c true if @a that refers to the same memory as @a this,
- @c false otherwise.
- */
- bool operator==(self const &that) const;
- /** Equality.
- @return @c true if @a that refers to the same memory as @a this,
- @c false otherwise.
- */
- bool operator==(Buffer const &that) const;
- /** Inequality.
- @return @c true if @a that does not refer to the same memory as @a this,
- @c false otherwise.
- */
- bool operator!=(self const &that) const;
- /** Inequality.
- @return @c true if @a that does not refer to the same memory as @a this,
- @c false otherwise.
- */
- bool operator!=(Buffer const &that) const;
- /// Assign from non-const Buffer.
- self &operator=(Buffer const &that ///< Source buffer.
- );
-
- /// @return The first character in the buffer.
- char operator*() const;
- /** Discard the first character in the buffer.
- @return @a this object.
- */
- self &operator++();
- /** Discard the first @a n characters.
- @return @a this object.
- */
- self &operator+=(size_t n);
-
- /// Check for empty buffer.
- /// @return @c true if the buffer has a zero pointer @b or size.
- bool operator!() const;
- /// Check for non-empty buffer.
- /// @return @c true if the buffer has a non-zero pointer @b and size.
- operator pseudo_bool() const;
-
- operator std::string_view() const { return {_ptr, _size}; }
-
- /// @name Accessors.
- //@{
- /// Get the data in the buffer.
- char const *data() const;
- /// Get the size of the buffer.
- size_t size() const;
- /// Access a character (no bounds check).
- char operator[](int n) const;
- //@}
- /// @return @c true if @a p points at a character in @a this.
- bool contains(char const *p) const;
-
- /// Set the chunk.
- /// Any previous values are discarded.
- /// @return @c this object.
- self &set(char const *ptr, ///< Buffer address.
- size_t n = 0 ///< Buffer size.
- );
- /** Set from 2 pointers.
- @note This presumes a half open range (start, end]
- */
- self &set(char const *start, ///< First valid character.
- char const *end ///< First invalid character.
- );
- /// Reset to empty.
- self &reset();
-
- /** Find a character.
- @return A pointer to the first occurrence of @a c in @a this
- or @c nullptr if @a c is not found.
- */
- char const *find(char c) const;
-
- /** Split the buffer on the character at @a p.
-
- The buffer is split in to two parts and the character at @a p
- is discarded. @a this retains all data @b after @a p. The
- initial part of the buffer is returned. Neither buffer will
- contain the character at @a p.
-
- This is convenient when tokenizing and @a p points at the token
- separator.
-
- @note If @a *p is not in the buffer then @a this is not changed
- and an empty buffer is returned. This means the caller can
- simply pass the result of @c find and check for an empty
- buffer returned to detect no more separators.
-
- @return A buffer containing data up to but not including @a p.
- */
- self splitOn(char const *p);
-
- /** Split the buffer on the character @a c.
-
- The buffer is split in to two parts and the occurrence of @a c
- is discarded. @a this retains all data @b after @a c. The
- initial part of the buffer is returned. Neither buffer will
- contain the first occurrence of @a c.
-
- This is convenient when tokenizing and @a c is the token
- separator.
-
- @note If @a c is not found then @a this is not changed and an
- empty buffer is returned.
-
- @return A buffer containing data up to but not including @a p.
- */
- self splitOn(char c);
- /** Get a trailing segment of the buffer.
-
- @return A buffer that contains all data after @a p.
- */
- self after(char const *p) const;
- /** Get a trailing segment of the buffer.
-
- @return A buffer that contains all data after the first
- occurrence of @a c.
- */
- self after(char c) const;
- /** Remove trailing segment.
-
- Data at @a p and beyond is removed from the buffer.
- If @a p is not in the buffer, no change is made.
-
- @return @a this.
- */
- self &clip(char const *p);
-};
-
-// ----------------------------------------------------------
-// Inline implementations.
-
-inline Buffer::Buffer() {}
-inline Buffer::Buffer(char *ptr, size_t n) : _ptr(ptr), _size(n) {}
-inline Buffer &
-Buffer::set(char *ptr, size_t n)
-{
- _ptr = ptr;
- _size = n;
- return *this;
-}
-inline Buffer::Buffer(char *start, char *end) : _ptr(start), _size(end -
start) {}
-inline Buffer &
-Buffer::reset()
-{
- _ptr = nullptr;
- _size = 0;
- return *this;
-}
-inline bool
-Buffer::operator!=(self const &that) const
-{
- return !(*this == that);
-}
-inline bool
-Buffer::operator!=(ConstBuffer const &that) const
-{
- return !(*this == that);
-}
-inline bool
-Buffer::operator==(self const &that) const
-{
- return _size == that._size && _ptr == that._ptr;
-}
-inline bool
-Buffer::operator==(ConstBuffer const &that) const
-{
- return _size == that._size && _ptr == that._ptr;
-}
-inline bool
-Buffer::operator!() const
-{
- return !(_ptr && _size);
-}
-inline Buffer::operator pseudo_bool() const
-{
- return _ptr && _size ? &self::operator! : nullptr;
-}
-inline char
-Buffer::operator*() const
-{
- return *_ptr;
-}
-inline Buffer &
-Buffer::operator++()
-{
- ++_ptr;
- --_size;
- return *this;
-}
-inline char *
-Buffer::data() const
-{
- return _ptr;
-}
-inline size_t
-Buffer::size() const
-{
- return _size;
-}
-
-inline ConstBuffer::ConstBuffer() {}
-inline ConstBuffer::ConstBuffer(char const *ptr, size_t n) : _ptr(ptr),
_size(n) {}
-inline ConstBuffer::ConstBuffer(char const *start, char const *end) :
_ptr(start), _size(end - start) {}
-inline ConstBuffer::ConstBuffer(Buffer const &that) : _ptr(that._ptr),
_size(that._size) {}
-inline ConstBuffer &
-ConstBuffer::set(char const *ptr, size_t n)
-{
- _ptr = ptr;
- _size = n;
- return *this;
-}
-
-inline ConstBuffer &
-ConstBuffer::set(char const *start, char const *end)
-{
- _ptr = start;
- _size = end - start;
- return *this;
-}
-
-inline ConstBuffer &
-ConstBuffer::reset()
-{
- _ptr = nullptr;
- _size = 0;
- return *this;
-}
-inline bool
-ConstBuffer::operator!=(self const &that) const
-{
- return !(*this == that);
-}
-inline bool
-ConstBuffer::operator!=(Buffer const &that) const
-{
- return !(*this == that);
-}
-inline bool
-ConstBuffer::operator==(self const &that) const
-{
- return _size == that._size && 0 == memcmp(_ptr, that._ptr, _size);
-}
-inline ConstBuffer &
-ConstBuffer::operator=(Buffer const &that)
-{
- _ptr = that._ptr;
- _size = that._size;
- return *this;
-}
-inline bool
-ConstBuffer::operator==(Buffer const &that) const
-{
- return _size == that._size && 0 == memcmp(_ptr, that._ptr, _size);
-}
-inline bool
-ConstBuffer::operator!() const
-{
- return !(_ptr && _size);
-}
-inline ConstBuffer::operator pseudo_bool() const
-{
- return _ptr && _size ? &self::operator! : nullptr;
-}
-inline char
-ConstBuffer::operator*() const
-{
- return *_ptr;
-}
-inline ConstBuffer &
-ConstBuffer::operator++()
-{
- ++_ptr;
- --_size;
- return *this;
-}
-inline ConstBuffer &
-ConstBuffer::operator+=(size_t n)
-{
- _ptr += n;
- _size -= n;
- return *this;
-}
-inline char const *
-ConstBuffer::data() const
-{
- return _ptr;
-}
-inline char
-ConstBuffer::operator[](int n) const
-{
- return _ptr[n];
-}
-inline size_t
-ConstBuffer::size() const
-{
- return _size;
-}
-inline bool
-ConstBuffer::contains(char const *p) const
-{
- return _ptr <= p && p < _ptr + _size;
-}
-
-inline ConstBuffer
-ConstBuffer::splitOn(char const *p)
-{
- self zret; // default to empty return.
- if (this->contains(p)) {
- size_t n = p - _ptr;
- zret.set(_ptr, n);
- _ptr = p + 1;
- _size -= n + 1;
- }
- return zret;
-}
-
-inline char const *
-ConstBuffer::find(char c) const
-{
- return static_cast<char const *>(memchr(_ptr, c, _size));
-}
-
-inline ConstBuffer
-ConstBuffer::splitOn(char c)
-{
- return this->splitOn(this->find(c));
-}
-
-inline ConstBuffer
-ConstBuffer::after(char const *p) const
-{
- return this->contains(p) ? self(p + 1, (_size - (p - _ptr)) - 1) : self();
-}
-inline ConstBuffer
-ConstBuffer::after(char c) const
-{
- return this->after(this->find(c));
-}
-inline ConstBuffer &
-ConstBuffer::clip(char const *p)
-{
- if (this->contains(p)) {
- _size = p - _ptr;
- }
- return *this;
-}
-
-} // namespace ts
-
-using TsBuffer = ts::Buffer;
-using TsConstBuffer = ts::ConstBuffer;