struct CCL::IDataTransformer

Overview

Byte-oriented data transformation interface. More…

#include <idatatransformer.h>

struct IDataTransformer: public CCL::IUnknown
{
    // enums

    enum Constants;
    enum Mode;

    // methods

    virtual tresult CCL_API suggestBufferSizes (int& sourceSize, int& destSize) = 0;
    virtual tresult CCL_API open (int sourceSize, int destSize) = 0;

    virtual tresult CCL_API transform (
        const TransformData& data,
        int& sourceUsed,
        int& destUsed
    ) = 0;

    virtual void CCL_API close () = 0;
    virtual void CCL_API reset () = 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

Byte-oriented data transformation interface.

Methods

virtual tresult CCL_API suggestBufferSizes (int& sourceSize, int& destSize) = 0

The caller proposes sizes which can be adjusted by transformer.

virtual tresult CCL_API open (int sourceSize, int destSize) = 0

Begin transformation with specified input/output buffer sizes.

virtual tresult CCL_API transform (
    const TransformData& data,
    int& sourceUsed,
    int& destUsed
) = 0

Transformer consumes as much of the sourceBuffer and fills as much of the destBuffer as reasonable.

virtual void CCL_API close () = 0

End transformation.

virtual void CCL_API reset () = 0

Reset transformation, more efficient than calling close/open.