Class ProgressInfo

Nested Relationships

Nested Types

Inheritance Relationships

Base Types

Class Documentation

class ProgressInfo : public SmartPeak::IApplicationProcessorObserver, public SmartPeak::ISequenceProcessorObserver, public SmartPeak::ISequenceSegmentProcessorObserver, public SmartPeak::ISampleGroupProcessorObserver

ProgressInfo holds information about current status of a running workflow, and provide estimation of remaining running time.

Public Functions

inline ProgressInfo(ApplicationProcessorObservable &application_processor_observable, SequenceProcessorObservable &sequence_processor_observable, SequenceSegmentProcessorObservable &sequence_segment_processor_observable, SampleGroupProcessorObservable &sample_group_processor_observable)
virtual void onApplicationProcessorStart(const std::vector<std::string> &commands) override

IApplicationProcessorObserver

virtual void onApplicationProcessorCommandStart(size_t command_index, const std::string &command_name) override
virtual void onApplicationProcessorCommandEnd(size_t command_index, const std::string &command_name) override
virtual void onApplicationProcessorEnd() override
virtual void onApplicationProcessorError(const std::string &error) override
virtual void onSequenceProcessorStart(const size_t nb_injections) override

ISequenceProcessorObserver

virtual void onSequenceProcessorSampleStart(const std::string &sample) override
virtual void onSequenceProcessorSampleEnd(const std::string &sample) override
virtual void onSequenceProcessorEnd() override
virtual void onSequenceProcessorError(const std::string &sample_name, const std::string &processor_name, const std::string &error) override
virtual void onSequenceSegmentProcessorStart(const size_t nb_segments) override

ISequenceSegmentProcessorObserver

virtual void onSequenceSegmentProcessorSampleStart(const std::string &segment_name) override
virtual void onSequenceSegmentProcessorSampleEnd(const std::string &segment_name) override
virtual void onSequenceSegmentProcessorEnd() override
virtual void onSequenceSegmentProcessorError(const std::string &segment_name, const std::string &processor_name, const std::string &error) override
virtual void onSampleGroupProcessorStart(const size_t nb_segments) override

ISampleGroupProcessorObserver

virtual void onSampleGroupProcessorSampleStart(const std::string &segment_name) override
virtual void onSampleGroupProcessorSampleEnd(const std::string &segment_name) override
virtual void onSampleGroupProcessorEnd() override
virtual void onSampleGroupProcessorError(const std::string &group_name, const std::string &processor_name, const std::string &error) override
inline bool isRunning() const

returns wether the workflow is running

std::chrono::steady_clock::duration runningTime() const

returns time since workflow has been started

std::optional<std::chrono::steady_clock::duration> estimatedRemainingTime() const

returns an estimated remaining time until the end of the workflow

The value can increase or decrease during time, even can go to 0.

float progressValue() const

a value between 0.0 and 1.0 of the progress value.

The value is based on the step progression and always increases.

inline const std::vector<std::string> &allCommands() const

list of commands (running or not) of the workflow.

const std::vector<std::tuple<size_t, std::string>> &runningCommands() const

list of running commands of the workflow.

const std::vector<std::string> &runningBatch() const

detailed about running injections, segment or sample groups

inline std::chrono::steady_clock::duration lastRunTime() const

return running time of the last workflow executed

inline const std::vector<std::string> &errors() const

detailed about errors

Protected Attributes

bool running_ = false
std::vector<std::tuple<size_t, std::string>> running_commands_
int commands_step_ = 0

ApplicationProcessor’s running commands

std::vector<std::string> all_commands_
std::chrono::steady_clock::time_point application_processor_start_time_
std::shared_ptr<RunningBatch> running_batch_
std::chrono::steady_clock::duration last_run_time_ = std::chrono::steady_clock::duration::zero()
std::vector<std::string> errors_
struct RunningBatch

RunningBatch used for sequence, sequence segments and sample groups.

Public Functions

inline RunningBatch(const size_t nb_items)

Public Members

std::vector<std::string> running_items_
size_t current_step_ = 0
size_t max_steps_
std::chrono::steady_clock::time_point last_item_end_time_point_