API reference - Class RelativeProgress

Notation used in Ruby API documentation

Description: A progress reporter counting progress in relative units

Class hierarchy: RelativeProgress » Progress

A relative progress reporter counts from 0 to some maximum value representing 0 to 100 percent completion of a task. The progress can be configured to have a description text, a title and a format. The "inc" method increments the value, the "set" or "value=" methods set the value to a specific value.

While one of these three methods is called, they will run the event loop in regular intervals. That makes the application respond to mouse clicks, specifically the Cancel button on the progress bar. If that button is clicked, an exception will be raised by these methods.

The progress object must be destroyed explicitly in order to remove the progress status bar.

A code example:

p = RBA::RelativeProgress::new("test", 10000000)
begin
  10000000.times { p.inc }
ensure
  p.destroy
end

This class has been introduced in version 0.23.

Public constructors

new RelativeProgressnew(string desc,
unsigned int max_value)
Creates a relative progress reporter with the given description and maximum value
new RelativeProgressnew(string desc,
unsigned int max_value,
unsigned int yield_interval)
Creates a relative progress reporter with the given description and maximum value

Public methods

voidcreateEnsures the C++ object is created
voiddestroyExplicitly destroy the object
[const]booldestroyed?Returns a value indicating whether the object was already destroyed
voidformat=(string format)sets the output format (sprintf notation) for the progress text
RelativeProgressincIncrements the progress value
[const]boolis_const_object?Returns a value indicating whether the reference is a const reference
voidset(unsigned int value,
bool force_yield)
Sets the progress value
voidvalue=(unsigned int value)Sets the progress value

Detailed description

void create

Description: Ensures the C++ object is created

Use this method to ensure the C++ object is created, for example to ensure that resources are allocated. Usually C++ objects are created on demand and not necessarily when the script object is created.

void destroy

Description: Explicitly destroy the object

Explicitly destroy the object on C++ side if it was owned by the Ruby interpreter. Subsequent access to this object will throw an exception. If the object is not owned by Ruby, this method will do nothing.

[const] bool destroyed?

Description: Returns a value indicating whether the object was already destroyed

This method returns true, if the object was destroyed, either explicitly or by the C++ side. The latter may happen, if the object is owned by a C++ object which got destroyed itself.

void format=(string format)

Description: sets the output format (sprintf notation) for the progress text

RelativeProgress inc

Description: Increments the progress value

[const] bool is_const_object?

Description: Returns a value indicating whether the reference is a const reference

This method returns true, if self is a const reference. In that case, only const methods may be called on self.

[static] new RelativeProgress new(string desc,unsigned int max_value)

Description: Creates a relative progress reporter with the given description and maximum value

The reported progress will be 0 to 100% for values between 0 and the maximum value. The values are always integers. Double values cannot be used property.

[static] new RelativeProgress new(string desc,unsigned int max_value,unsigned int yield_interval)

Description: Creates a relative progress reporter with the given description and maximum value

The reported progress will be 0 to 100% for values between 0 and the maximum value. The values are always integers. Double values cannot be used property.

The yield interval specifies, how often the event loop will be triggered. When the yield interval is 10 for example, the event loop will be executed every tenth call of inc or set.

void set(unsigned int value,bool force_yield)

Description: Sets the progress value

This method is equivalent to value=, but it allows to force the event loop to be triggered. If "force_yield" is true, the event loop will be triggered always, irregardless of the yield interval specified in the constructor.

void value=(unsigned int value)

Description: Sets the progress value