forbear_bar_object Module

module~~forbear_bar_object~~UsesGraph module~forbear_bar_object forbear_bar_object iso_fortran_env iso_fortran_env iso_fortran_env->module~forbear_bar_object module~forbear_element_object forbear_element_object iso_fortran_env->module~forbear_element_object module~forbear_element_object->module~forbear_bar_object module~forbear_kinds forbear_kinds module~forbear_kinds->module~forbear_bar_object module~forbear_kinds->module~forbear_element_object face face face->module~forbear_element_object
Help

forbear project, definition of bar_object.

Used By

module~~forbear_bar_object~~UsedByGraph module~forbear_bar_object forbear_bar_object module~forbear forbear module~forbear_bar_object->module~forbear program~forbear_minimal forbear_minimal module~forbear->program~forbear_minimal
Help


Derived Types

type, public :: bar_object

Progress bar class.

Components

TypeVisibility AttributesNameInitial
logical, public :: add_date_time

Add date and time.

logical, public :: add_progress_percent

Add progress in percent.

logical, public :: add_progress_speed

Add progress speed in percent.

logical, public :: add_scale_bar

Add scale to the bar.

type(element_object), public :: bracket_left

Left bracket surrounding the bar.

type(element_object), public :: bracket_right

Right bracket surrounding the bar.

type(element_object), public :: date_time

Date and time.

type(element_object), public :: empty_char

Characters used for empty bar.

type(element_object), public :: filled_char

Characters used for filled bar.

integer(kind=I4P), public :: frequency

Bar update frequency, in range [1%,100%].

logical, public :: is_stdout_locked_

Flag to store standard output status.

real(kind=R8P), public :: max_value

Maximum value.

real(kind=R8P), public :: min_value

Minimum value.

type(element_object), public :: prefix

Message prefixing the bar.

type(element_object), public :: progress_percent

Progress in percent.

type(element_object), public :: progress_speed

Progress speed in percent.

type(element_object), public :: scale_bar

Scale bar.

type(element_object), public, allocatable:: spinner(:)

Spinner.

type(element_object), public :: suffix

Message suffixing the bar.

integer(kind=I4P), public :: width

With of the bar.

Type-Bound Procedures

procedure, private, pass(lhs) :: assign_bar

Operator =.

generic, public :: assignment(=) => assign_bar

Overload = operator.

procedure, private, pass(self) :: create_spinner

Create spinner.

procedure, public, pass(self) :: destroy

Destroy bar.

procedure, public, pass(self) :: initialize

Initialize bar.

procedure, public, pass(self) :: is_stdout_locked

Return status of standard output unit.

procedure, public, pass(self) :: start

Start bar.

procedure, public, pass(self) :: update

Update bar.


Functions

private pure function is_stdout_locked(self) result(is_locked)

Return status of standard output unit.

Arguments

Type IntentOptional AttributesName
class(bar_object), intent(in) :: self

Bar.

Return Value logical

Standard output status.


Subroutines

private pure subroutine assign_bar(lhs, rhs)

Initialize bar.

Arguments

Type IntentOptional AttributesName
class(bar_object), intent(inout) :: lhs

Left hand side.

type(bar_object), intent(in) :: rhs

Right hand side.

private subroutine create_spinner(self, string, color_fg, color_bg, style)

Create spinner.

Arguments

Type IntentOptional AttributesName
class(bar_object), intent(inout) :: self

Bar.

class(*), intent(in), optional :: string

Spinner char.

character(len=*), intent(in), optional :: color_fg

Spinner char foreground color.

character(len=*), intent(in), optional :: color_bg

Spinner char background color.

character(len=*), intent(in), optional :: style

Spinner char style.

private pure subroutine destroy(self)

Destroy bar.

Arguments

Type IntentOptional AttributesName
class(bar_object), intent(inout) :: self

Bar.

private subroutine initialize(self, prefix_string, prefix_color_fg, prefix_color_bg, prefix_style, suffix_string, suffix_color_fg, suffix_color_bg, suffix_style, bracket_left_string, bracket_left_color_fg, bracket_left_color_bg, bracket_left_style, bracket_right_string, bracket_right_color_fg, bracket_right_color_bg, bracket_right_style, empty_char_string, empty_char_color_fg, empty_char_color_bg, empty_char_style, filled_char_string, filled_char_color_fg, filled_char_color_bg, filled_char_style, spinner_string, spinner_color_fg, spinner_color_bg, spinner_style, add_scale_bar, scale_bar_color_fg, scale_bar_color_bg, scale_bar_style, add_progress_percent, progress_percent_color_fg, progress_percent_color_bg, progress_percent_style, add_progress_speed, progress_speed_color_fg, progress_speed_color_bg, progress_speed_style, add_date_time, date_time_color_fg, date_time_color_bg, date_time_style, width, min_value, max_value, frequency)

Initialize bar.

Arguments

Type IntentOptional AttributesName
class(bar_object), intent(inout) :: self

Bar.

class(*), intent(in), optional :: prefix_string

Prefix string.

character(len=*), intent(in), optional :: prefix_color_fg

Prefix foreground color.

character(len=*), intent(in), optional :: prefix_color_bg

Prefix background color.

character(len=*), intent(in), optional :: prefix_style

Prefix style.

class(*), intent(in), optional :: suffix_string

Suffix string.

character(len=*), intent(in), optional :: suffix_color_fg

Suffix foreground color.

character(len=*), intent(in), optional :: suffix_color_bg

Suffix background color.

character(len=*), intent(in), optional :: suffix_style

Suffix style.

class(*), intent(in), optional :: bracket_left_string

Left bracket string.

character(len=*), intent(in), optional :: bracket_left_color_fg

Left bracket foreground color.

character(len=*), intent(in), optional :: bracket_left_color_bg

Left bracket background color.

character(len=*), intent(in), optional :: bracket_left_style

Left bracket style.

class(*), intent(in), optional :: bracket_right_string

Right bracket string

character(len=*), intent(in), optional :: bracket_right_color_fg

Right bracket foreground color.

character(len=*), intent(in), optional :: bracket_right_color_bg

Right bracket background color.

character(len=*), intent(in), optional :: bracket_right_style

Right bracket style.

class(*), intent(in), optional :: empty_char_string

Empty char.

character(len=*), intent(in), optional :: empty_char_color_fg

Empty char foreground color.

character(len=*), intent(in), optional :: empty_char_color_bg

Empty char background color.

character(len=*), intent(in), optional :: empty_char_style

Empty char style.

class(*), intent(in), optional :: filled_char_string

Filled char.

character(len=*), intent(in), optional :: filled_char_color_fg

Filled char foreground color.

character(len=*), intent(in), optional :: filled_char_color_bg

Filled char background color.

character(len=*), intent(in), optional :: filled_char_style

Filled char style.

class(*), intent(in), optional :: spinner_string

Spinner char.

character(len=*), intent(in), optional :: spinner_color_fg

Spinner char foreground color.

character(len=*), intent(in), optional :: spinner_color_bg

Spinner char background color.

character(len=*), intent(in), optional :: spinner_style

Spinner char style.

logical, intent(in), optional :: add_scale_bar

Add scale to the bar.

character(len=*), intent(in), optional :: scale_bar_color_fg

Scale bar foreground color.

character(len=*), intent(in), optional :: scale_bar_color_bg

Scale bar background color.

character(len=*), intent(in), optional :: scale_bar_style

Scale bar style.

logical, intent(in), optional :: add_progress_percent

Add progress in percent.

character(len=*), intent(in), optional :: progress_percent_color_fg

Progress percent foreground color.

character(len=*), intent(in), optional :: progress_percent_color_bg

Progress percent background color.

character(len=*), intent(in), optional :: progress_percent_style

Progress percent style.

logical, intent(in), optional :: add_progress_speed

Add progress in percent.

character(len=*), intent(in), optional :: progress_speed_color_fg

Progress speed foreground color.

character(len=*), intent(in), optional :: progress_speed_color_bg

Progress speed background color.

character(len=*), intent(in), optional :: progress_speed_style

Progress speed style.

logical, intent(in), optional :: add_date_time

Add date and time.

character(len=*), intent(in), optional :: date_time_color_fg

Date and time foreground color.

character(len=*), intent(in), optional :: date_time_color_bg

Date and time background color.

character(len=*), intent(in), optional :: date_time_style

Date and time style.

integer(kind=I4P), intent(in), optional :: width

With of the bar.

real(kind=R8P), intent(in), optional :: min_value

Minimum value.

real(kind=R8P), intent(in), optional :: max_value

Maximum value.

integer(kind=I4P), intent(in), optional :: frequency

Bar update frequency, in range [1%,100%].

private subroutine start(self)

Start bar.

Arguments

Type IntentOptional AttributesName
class(bar_object), intent(inout) :: self

Bar.

private subroutine update(self, current)

Update bar.

Arguments

Type IntentOptional AttributesName
class(bar_object), intent(inout) :: self

Bar.

real(kind=R8P), intent(in) :: current

Current value.