API reference - Class AbsoluteProgress

Notation used in Ruby API documentation

Module: tl

Description: A progress reporter counting progress in absolute units

Class hierarchy: AbsoluteProgress » Progress

An absolute progress reporter counts from 0 upwards without a known limit. A unit value is used to convert the value to a bar value. One unit corresponds to 1% on the bar. For formatted output, a format string can be specified as well as a unit value by which the current value is divided before it is formatted.

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.

The following sample code creates a progress bar which displays the current count as "Megabytes". For the progress bar, one percent corresponds to 16 kByte:

p = RBA::AbsoluteProgress::new("test")
p.format = "%.2f MBytes"
p.unit = 1024*16
p.format_unit = 1024*1024
begin
  10000000.times { p.inc }
ensure
  p.destroy
end

This class has been introduced in version 0.23.

Public constructors

new AbsoluteProgress ptrnew(string desc)Creates an absolute progress reporter with the given description
new AbsoluteProgress ptrnew(string desc,
unsigned long yield_interval)
Creates an absolute progress reporter with the given description

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 AbsoluteProgress other)Assigns another object to self
[const]new AbsoluteProgress ptrdupCreates a copy of self
voidformat=(string format)sets the output format (sprintf notation) for the progress text
voidformat_unit=(double unit)Sets the format unit
AbsoluteProgressincIncrements the progress value
voidset(unsigned long value,
bool force_yield)
Sets the progress value
voidunit=(double unit)Sets the unit
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 AbsoluteProgress other)

Description: Assigns another object to self

dup

Signature: [const] new AbsoluteProgress 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.

format_unit=

Signature: void format_unit= (double unit)

Description: Sets the format unit

This is the unit used for formatted output. The current count is divided by the format unit to render the value passed to the format string.

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

inc

Signature: AbsoluteProgress inc

Description: Increments the progress value

new

(1) Signature: [static] new AbsoluteProgress ptr new (string desc)

Description: Creates an absolute progress reporter with the given description

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

(2) Signature: [static] new AbsoluteProgress ptr new (string desc, unsigned long yield_interval)

Description: Creates an absolute progress reporter with the given description

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.

unit=

Signature: void unit= (double unit)

Description: Sets the unit

Specifies the count value corresponding to 1 percent on the progress bar. By default, the current value divided by the unit is used to create the formatted value from the output string. Another attribute is provided (format_unit=) to specify a separate unit for that purpose.

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

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.