# StringPart

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

# StringPart

```cpp
#include <icy/http/form.h>

class StringPart
```

[Defined in src/http/include/icy/http/form.h:306](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/form.h#L306)

> **Inherits:** [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart)

Form part backed by an in-memory string payload.

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`StringPart`](#stringpart-2) | `function` | Declared here |
| [`StringPart`](#stringpart-3) | `function` | Declared here |
| [`~StringPart`](#stringpart-4) | `function` | Declared here |
| [`writeChunk`](#writechunk-2) | `function` | Declared here |
| [`write`](#write-33) | `function` | Declared here |
| [`write`](#write-34) | `function` | Declared here |
| [`length`](#length-3) | `function` | Declared here |
| [`_data`](#_data-3) | `variable` | Declared here |
| [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart-1) | `function` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`~FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart-2) | `function` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`reset`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#reset-18) | `function` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`writeChunk`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#writechunk-1) | `function` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`write`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#write-22) | `function` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`write`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#write-23) | `function` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`headers`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#headers-1) | `function` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`initialWrite`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#initialwrite) | `function` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`contentType`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#contenttype-1) | `function` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`length`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#length-2) | `function` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`_contentType`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#_contenttype) | `variable` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`_length`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#_length) | `variable` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`_headers`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#_headers) | `variable` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |
| [`_initialWrite`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#_initialwrite) | `variable` | Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) |

## Inherited from [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart)

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart-1)  | Creates the [FormPart](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart) with the given MIME content type. |
| `function` | [`~FormPart`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart-2) `virtual` | Destroys the [FormPart](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#formpart). |
| `function` | [`reset`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#reset-18) `virtual` | Resets the internal state and write position to the beginning. Called by [FormWriter](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter) when retrying or recalculating content length. |
| `function` | [`writeChunk`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#writechunk-1) `virtual` | Writes the next chunk of data to the [FormWriter](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter). |
| `function` | [`write`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#write-22) `virtual` | Writes the entire part data to the [FormWriter](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter) in one call. |
| `function` | [`write`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#write-23) `virtual` | Writes the entire part data to an output stream (used for content-length calculation). |
| `function` | [`headers`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#headers-1)  | Returns the extra MIME headers for this part (e.g. Content-Disposition). |
| `function` | [`initialWrite`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#initialwrite) `virtual` `const` | Returns true if this is the first write call since construction or [reset()](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#reset-18). |
| `function` | [`contentType`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#contenttype-1) `const` | Returns the MIME content type for this part. |
| `function` | [`length`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#length-2) `virtual` `const` | Returns the total byte length of the part data. |
| `variable` | [`_contentType`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#_contenttype)  |  |
| `variable` | [`_length`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#_length)  |  |
| `variable` | [`_headers`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#_headers)  |  |
| `variable` | [`_initialWrite`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#_initialwrite)  |  |

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`StringPart`](#stringpart-2)  | Creates a [StringPart](#stringpart-1) with the given data and default content type "application/octet-stream". |
|  | [`StringPart`](#stringpart-3)  | Creates a [StringPart](#stringpart-1) with the given data and MIME content type. |
|  | [`~StringPart`](#stringpart-4) `virtual` | Destroys the [StringPart](#stringpart-1). |
| `bool` | [`writeChunk`](#writechunk-2) `virtual` `override` | Writes the string data as a single chunk to the [FormWriter](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter). |
| `void` | [`write`](#write-33) `virtual` `override` | Writes the string data to the [FormWriter](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter). |
| `void` | [`write`](#write-34) `virtual` `override` | Writes the string data to an output stream. |
| `uint64_t` | [`length`](#length-3) `virtual` `const` `override` | Returns the byte length of the string data. |

---

<a id="stringpart-2"></a>

### StringPart

```cpp
StringPart(const std::string & data)
```

[Defined in src/http/include/icy/http/form.h:311](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/form.h#L311)

Creates a [StringPart](#stringpart-1) with the given data and default content type "application/octet-stream".

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `data` | `const std::string &` | String data to send as this part. |

---

<a id="stringpart-3"></a>

### StringPart

```cpp
StringPart(const std::string & data, const std::string & contentType)
```

[Defined in src/http/include/icy/http/form.h:316](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/form.h#L316)

Creates a [StringPart](#stringpart-1) with the given data and MIME content type.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `data` | `const std::string &` | String data to send as this part. |
| `contentType` | `const std::string &` | MIME type for this part. |

---

<a id="stringpart-4"></a>

### ~StringPart

`virtual`

```cpp
virtual ~StringPart()
```

[Defined in src/http/include/icy/http/form.h:319](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/form.h#L319)

Destroys the [StringPart](#stringpart-1).

---

<a id="writechunk-2"></a>

### writeChunk

`virtual` `override`

```cpp
virtual bool writeChunk(FormWriter & writer) override
```

[Defined in src/http/include/icy/http/form.h:324](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/form.h#L324)

Writes the string data as a single chunk to the [FormWriter](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter). 
#### Returns
false always (string data is sent in a single chunk).

#### Reimplements

- [`FormPart::writeChunk`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#writechunk-1)

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `writer` | [`FormWriter`](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter) & | The [FormWriter](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter) to send data through. |

---

<a id="write-33"></a>

### write

`virtual` `override`

```cpp
virtual void write(FormWriter & writer) override
```

[Defined in src/http/include/icy/http/form.h:328](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/form.h#L328)

Writes the string data to the [FormWriter](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter).

#### Reimplements

- [`FormPart::write`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#write-22)

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `writer` | [`FormWriter`](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter) & | The [FormWriter](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md#formwriter) to send data through. |

---

<a id="write-34"></a>

### write

`virtual` `override`

```cpp
virtual void write(std::ostream & ostr) override
```

[Defined in src/http/include/icy/http/form.h:332](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/form.h#L332)

Writes the string data to an output stream.

#### Reimplements

- [`FormPart::write`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#write-23)

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `ostr` | `std::ostream &` | Output stream to write to. |

---

<a id="length-3"></a>

### length

`virtual` `const` `override`

```cpp
virtual uint64_t length() const override
```

[Defined in src/http/include/icy/http/form.h:335](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/form.h#L335)

Returns the byte length of the string data.

#### Reimplements

- [`FormPart::length`](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md#length-2)

## Protected Attributes

| Return | Name | Description |
|--------|------|-------------|
| `std::string` | [`_data`](#_data-3)  |  |

---

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

### _data

```cpp
std::string _data
```

[Defined in src/http/include/icy/http/form.h:338](https://github.com/auscaster/icey/blob/main/src/http/include/icy/http/form.h#L338)
