struct CCL::IMediaThreadWorkgroupHandler

Overview

Handler to add / remove threads to workgroups in multimedia applications. More…

#include <imediathreading.h>

struct IMediaThreadWorkgroupHandler: public CCL::IUnknown
{
    // methods

    virtual tresult CCL_API createWorkgroup (
        Threading::WorkgroupID& workgroup,
        StringID name
    ) = 0;

    virtual tresult CCL_API releaseWorkgroup (Threading::WorkgroupID workgroup) = 0;

    virtual tresult CCL_API startWorkgroupInterval (
        Threading::WorkgroupID workgroup,
        double intervalSeconds
    ) = 0;

    virtual tresult CCL_API finishWorkgroupInterval (Threading::WorkgroupID workgroup) = 0;

    virtual tresult CCL_API addSelfToWorkgroup (
        Threading::WorkgroupToken& token,
        Threading::WorkgroupID workgroup
    ) = 0;

    virtual tresult CCL_API removeSelfFromWorkgroup (
        Threading::WorkgroupToken token,
        Threading::WorkgroupID workgroup
    ) = 0;

    virtual tresult CCL_API getMaxWorkgroupThreads (
        int& nThreads,
        Threading::WorkgroupID workgroup
    ) = 0;
};

Inherited Members

public:
    // 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;

Detailed Documentation

Handler to add / remove threads to workgroups in multimedia applications.

Methods

virtual tresult CCL_API createWorkgroup (
    Threading::WorkgroupID& workgroup,
    StringID name
) = 0

Create workgroup.

virtual tresult CCL_API releaseWorkgroup (Threading::WorkgroupID workgroup) = 0

Release workgroup.

virtual tresult CCL_API startWorkgroupInterval (
    Threading::WorkgroupID workgroup,
    double intervalSeconds
) = 0

Start workgroup interval.

virtual tresult CCL_API finishWorkgroupInterval (Threading::WorkgroupID workgroup) = 0

Finish workgroup interval.

virtual tresult CCL_API addSelfToWorkgroup (
    Threading::WorkgroupToken& token,
    Threading::WorkgroupID workgroup
) = 0

Join this thread to the workgroup.

virtual tresult CCL_API removeSelfFromWorkgroup (
    Threading::WorkgroupToken token,
    Threading::WorkgroupID workgroup
) = 0

Before exiting the thread, leave the workgroup.

virtual tresult CCL_API getMaxWorkgroupThreads (
    int& nThreads,
    Threading::WorkgroupID workgroup
) = 0

Optimal number of threads per workgroup.