ClientUser::CreateProgress( int )

Create a ClientProgress object by subclassing, or null if no progress indicator is desired.

Virtual?

Yes

 

Class

ClientUser

 

Arguments

int ProgressType

the type of progress to be reported

Returns

*ClientProgress

a pointer to the new ClientProgress object.

Notes

Files smaller than 1K are ignored. To set a different minimum file size, use the ClientUser::CreateProgress( int, P4INT64 ) method.

To enable progress reporting for a command, create a ClientProgress object and then implement ProgressIndicator() to return 0 or 1 depending on whether or not you want to enable the progress indicator. (You typically implement ProgressIndicator() to return 1, and call it only when a progress indicator is desired.)

The API calls this method with the appropriate ProgressType as defined in clientprog.h. The following ProgressTypes can be reported:

Client Progress Type Value Meaning

CPT_SENDFILE

1

Files sent to the server. This represents the source path, that is, the local path to the file being sent. The unit is KB (3) or Deltas (5), depending on transfer mechanism. See Notes in ClientProgress::Description( const StrPtr *, int ). The total for ClientProgress::Total( long ) is the total bytes or deltas to send. This type can be used with the context of the tagged output from the p4 sync command.

CPT_RECVFILE

2

Files received from server. This represents the destination path, that is, the local path to the file being received. The unit is KB (3). The total for for ClientProgress::Total( long ) is the total bytes to receive. This progress notification depends on the client receiving the filesize from the server, which is a feature that requires a 2020.2 or later Helix Core Server. This type can be used with the context of the tagged output from the p4 sync command.

CPT_FILESTRANS

3

Files transmitted

CPT_COMPUTATION

4

Computation performed server-side

 

See also

ClientUser::ProgressIndicator()ClientProgress::Description()ClientProgress::Done()ClientProgress::Total()ClientProgress::Update()