Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

C/C++ API Documentation | 2026.1

# ClientProgress::Description( const StrPtr *, int )

Sets up a description and defines the units by which command progress is measured.

Virtual? | Yes |
Class | `ClientProgress` |
Arguments | `const StrPtr *desc` | description from the server
| `int units` | the units in which progress is to be measured
Returns | `void` |

## Notes

The API calls this method on command startup, supplying your implementation with a description and a client progress unit type. The `units` in which client progress is measured are defined in `clientprog.h` as follows:

Client Progress Unit | Value | Meaning
--- | --- | ---
`CPU_UNSPECIFIED` | `0` | No units specified
`CPU_PERCENT` | `1` | Value is a percentage
`CPU_FILES` | `2` | Value is a count of files
`CPU_KBYTES` | `3` | Value is in kilobytes
`CPU_MBYTES` | `4` | Value is in megabytes
`CPU_DELTAS` | `5` | Number of Deltas. See Delta Transfer of large binary files in the P4 Server Administration Documentation.

## See also

- `ClientUser::CreateProgress()`

- `ClientUser::ProgressIndicator()`

- `ClientProgress::Done()`

- `ClientProgress::Total()`

- `ClientProgress::Update()`

## Example

Create a subclass of `ClientProgress` and define an implementation of `Description()`, even if it is a trivial implementation:

    void MyProgress::Description( const StrPtr *desc, int units )
    {
        printf( "Starting command:\n" );
    }

Your search for returned results