API reference - Class RelativeProgress

Notation used in Ruby API documentation

Module: tl

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 RelativeProgress ptrnew(string desc,
unsigned long max_value)
Creates a relative progress reporter with the given description and maximum value
new RelativeProgress ptrnew(string desc,
unsigned long max_value,
unsigned long yield_interval)
Creates a relative progress reporter with the given description and maximum value

Public methods

void_createEnsures the C++ object is created
void_destroyExplicitly destroys the object
[const]bool_destroyed?Returns a value indicating whether the object was already destroyed
[const]bool_is_const_object?Returns a value indicating whether the reference is a const reference
void_manageMarks the object as managed by the script side.
void_unmanageMarks the object as no longer owned by the script side.
voidassign(const RelativeProgress other)Assigns another object to self
[const]new RelativeProgress ptrdupCreates a copy of self
voidformat=(string format)sets the output format (sprintf notation) for the progress text
RelativeProgressincIncrements the progress value
voidset(unsigned long value,
bool force_yield)
Sets the progress value
voidvalue=(unsigned long value)Sets the progress value

Detailed description

_create

Signature: 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.

_destroy

Signature: void _destroy

Description: Explicitly destroys the object

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

_destroyed?

Signature: [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.

_is_const_object?

Signature: [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.

_manage

Signature: void _manage

Description: Marks the object as managed by the script side.

After calling this method on an object, the script side will be responsible for the management of the object. This method may be called if an object is returned from a C++ function and the object is known not to be owned by any C++ instance. If necessary, the script side may delete the object if the script's reference is no longer required.

Usually it's not required to call this method. It has been introduced in version 0.24.

_unmanage

Signature: void _unmanage

Description: Marks the object as no longer owned by the script side.

Calling this method will make this object no longer owned by the script's memory management. Instead, the object must be managed in some other way. Usually this method may be called if it is known that some C++ object holds and manages this object. Technically speaking, this method will turn the script's reference into a weak reference. After the script engine decides to delete the reference, the object itself will still exist. If the object is not managed otherwise, memory leaks will occur.

Usually it's not required to call this method. It has been introduced in version 0.24.

assign

Signature: void assign (const RelativeProgress other)

Description: Assigns another object to self

dup

Signature: [const] new RelativeProgress ptr dup

Description: Creates a copy of self

Python specific notes:
This method also implements '__copy__' and '__deepcopy__'.

format=

Signature: void format= (string format)

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

Python specific notes:
The object exposes a writable attribute 'format'. This is the setter.

inc

Signature: RelativeProgress inc

Description: Increments the progress value

new

(1) Signature: [static] new RelativeProgress ptr new (string desc, unsigned long 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.

Python specific notes:
This method is the default initializer of the object.

(2) Signature: [static] new RelativeProgress ptr new (string desc, unsigned long max_value, unsigned long 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.

Python specific notes:
This method is the default initializer of the object.

set

Signature: void set (unsigned long value, bool force_yield)

Description: Sets the progress value

This method is equivalent to value=, but it allows forcing 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.

value=

Signature: void value= (unsigned long value)

Description: Sets the progress value

Python specific notes:
The object exposes a writable attribute 'value'. This is the setter.