> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/holoscan/sdk-user-guide/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/holoscan/sdk-user-guide/_mcp/server.

# holoscan::FragmentAllocationStrategy

```cpp showLineNumbers={false}
#include <holoscan/fragment_scheduler.hpp>
```

***

## Constructors

### Destructor \[#destructor]

### \~FragmentAllocationStrategy

```cpp showLineNumbers={false}
virtual holoscan::FragmentAllocationStrategy::~FragmentAllocationStrategy() = default
```

***

## Methods

### add\_resource\_requirement \[#addresourcerequirement]

```cpp showLineNumbers={false}
void holoscan::FragmentAllocationStrategy::add_resource_requirement(
    const SystemResourceRequirement &resource_requirement
)
```

Add resource requirement for a fragment.

**Parameters**

The resource requirement for a fragment.

```cpp showLineNumbers={false}
void holoscan::FragmentAllocationStrategy::add_resource_requirement(
    SystemResourceRequirement &&resource_requirement
)
```

Add resource requirement for a fragment.

**Parameters**

The resource requirement for a fragment.

### add\_available\_resource \[#addavailableresource]

```cpp showLineNumbers={false}
void holoscan::FragmentAllocationStrategy::add_available_resource(
    const AvailableSystemResource &available_resource
)
```

Add app worker resource.

**Parameters**

The available resource for an app worker.

```cpp showLineNumbers={false}
void holoscan::FragmentAllocationStrategy::add_available_resource(
    AvailableSystemResource &&available_resource
)
```

Add app worker resource.

**Parameters**

The available resource for an app worker.

### on\_add\_resource\_requirement \[#onaddresourcerequirement]

```cpp showLineNumbers={false}
virtual void holoscan::FragmentAllocationStrategy::on_add_resource_requirement(
    const SystemResourceRequirement &resource_requirement
)
```

### on\_add\_available\_resource \[#onaddavailableresource]

```cpp showLineNumbers={false}
virtual void holoscan::FragmentAllocationStrategy::on_add_available_resource(
    const AvailableSystemResource &available_resource
)
```

### schedule \[#schedule]

```cpp showLineNumbers={false}
virtual holoscan::expected<std::unordered_map<std::string, std::string>, std::string> holoscan::FragmentAllocationStrategy::schedule()
```

***

## Member variables

| Name                     | Type                                                           | Description                                                                         |
| ------------------------ | -------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `resource_requirements_` | `std::unordered_map< std::string, SystemResourceRequirement >` | System resource requirement for a fragment (fragment name, resource requirement).   |
| `available_resources_`   | `std::unordered_map< std::string, AvailableSystemResource >`   | Available system resources (app worker name as server ip/port, available resource). |