# ConstBuffer

<a id="constbuffer-6"></a>

# ConstBuffer

```cpp
#include <icy/buffer.h>

class ConstBuffer
```

[Defined in src/base/include/icy/buffer.h:142](https://github.com/auscaster/icey/blob/main/src/base/include/icy/buffer.h#L142)

The [ConstBuffer](#constbuffer-6) class provides a safe representation of a buffer that cannot be modified. It does not own the underlying data, and so is cheap to copy or assign.

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
| `constexpr` | [`ConstBuffer`](#constbuffer-7) `inline` `constexpr` | Construct an empty buffer. |
| `constexpr` | [`ConstBuffer`](#constbuffer-8) `inline` `constexpr` | Construct a buffer to represent the given memory range. |
| `constexpr` | [`ConstBuffer`](#constbuffer-9) `inline` `constexpr` | Construct a non-modifiable buffer from a modifiable one. |
| `constexpr const void *` | [`data`](#data-1) `const` `inline` `constexpr` |  |
| `constexpr size_t` | [`size`](#size) `const` `inline` `constexpr` |  |
| `const char *` | [`cstr`](#cstr) `const` `inline` | Cast the buffer as a const char pointer. |
| `std::string` | [`str`](#str) `const` `inline` | Returns the buffer as a string. |

---

<a id="constbuffer-7"></a>

### ConstBuffer

`inline` `constexpr`

```cpp
constexpr inline constexpr ConstBuffer()
```

[Defined in src/base/include/icy/buffer.h:146](https://github.com/auscaster/icey/blob/main/src/base/include/icy/buffer.h#L146)

Construct an empty buffer.

---

<a id="constbuffer-8"></a>

### ConstBuffer

`inline` `constexpr`

```cpp
constexpr inline constexpr ConstBuffer(const void * data, size_t size)
```

[Defined in src/base/include/icy/buffer.h:153](https://github.com/auscaster/icey/blob/main/src/base/include/icy/buffer.h#L153)

Construct a buffer to represent the given memory range.

---

<a id="constbuffer-9"></a>

### ConstBuffer

`inline` `constexpr`

```cpp
constexpr inline constexpr ConstBuffer(const MutableBuffer & b)
```

[Defined in src/base/include/icy/buffer.h:160](https://github.com/auscaster/icey/blob/main/src/base/include/icy/buffer.h#L160)

Construct a non-modifiable buffer from a modifiable one.

---

<a id="data-1"></a>

### data

`const` `inline` `constexpr`

```cpp
constexpr inline constexpr const void * data() const
```

[Defined in src/base/include/icy/buffer.h:166](https://github.com/auscaster/icey/blob/main/src/base/include/icy/buffer.h#L166)

---

<a id="size"></a>

### size

`const` `inline` `constexpr`

```cpp
constexpr inline constexpr size_t size() const
```

[Defined in src/base/include/icy/buffer.h:167](https://github.com/auscaster/icey/blob/main/src/base/include/icy/buffer.h#L167)

---

<a id="cstr"></a>

### cstr

`const` `inline`

```cpp
inline const char * cstr() const
```

[Defined in src/base/include/icy/buffer.h:170](https://github.com/auscaster/icey/blob/main/src/base/include/icy/buffer.h#L170)

Cast the buffer as a const char pointer.

---

<a id="str"></a>

### str

`const` `inline`

```cpp
inline std::string str() const
```

[Defined in src/base/include/icy/buffer.h:173](https://github.com/auscaster/icey/blob/main/src/base/include/icy/buffer.h#L173)

Returns the buffer as a string.

## Protected Attributes

| Return | Name | Description |
|--------|------|-------------|
| `const void *` | [`_data`](#_data)  |  |
| `size_t` | [`_size`](#_size)  |  |

---

<a id="_data"></a>

### _data

```cpp
const void * _data
```

[Defined in src/base/include/icy/buffer.h:176](https://github.com/auscaster/icey/blob/main/src/base/include/icy/buffer.h#L176)

---

<a id="_size"></a>

### _size

```cpp
size_t _size
```

[Defined in src/base/include/icy/buffer.h:177](https://github.com/auscaster/icey/blob/main/src/base/include/icy/buffer.h#L177)
