class CCL::BatchOperation

Overview

Manages a list of tasks. More…

#include <batchoperation.h>

class BatchOperation:
    public CCL::AsyncCompletionHandler,
    public CCL::IContainer
{
public:
    // structs

    struct RunningState;

    // classes

    class Task;

    // fields

     IContainer;

    // methods

    void addTask (Task* task);
    bool isEmpty () const;
    Iterator* newIterator () const;
    void removeAll ();
    int countTasks () const;
    const ObjectList& getTasks () const;
    bool run (IProgressNotify* progress);
    bool run (StringRef progressTitle, IWindow* parentWindow = nullptr);
    IAsyncOperation* runAsync (IProgressNotify* progress);

    IAsyncOperation* runAsync (
        StringRef progressTitle,
        IWindow* parentWindow = nullptr
    );

    void cancel ();
    tresult getResult () const;
    bool wasCanceled () const;
    PROPERTY_BOOL (cancelEnabled, CancelEnabled);
    ModalProgress PROPERTY_STRING (stepCountPattern, StepCountPattern);
};

Inherited Members

public:
    // fields

     IAsyncCompletionHandler;

    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;
    Unknown& operator = (const Unknown&);
    unsigned int getRetainCount () const;
    virtual void CCL_API onCompletion (IAsyncOperation& operation) = 0;
    virtual void CCL_API onCompletion (IAsyncOperation& operation);
    virtual IUnknownIterator*CCL_API createIterator () const = 0;

Detailed Documentation

Manages a list of tasks.

Methods

bool run (IProgressNotify* progress)

Run tasks: returns true if all tasks succeeded and not canceled.

bool run (StringRef progressTitle, IWindow* parentWindow = nullptr)

creates progress dialog

IAsyncOperation* runAsync (
    StringRef progressTitle,
    IWindow* parentWindow = nullptr
)

creates progress dialog

ModalProgress PROPERTY_STRING (stepCountPattern, StepCountPattern)

< request a modal (blocking) progress dialog (default: false); only for asynchronous usage, if the platform supports it