/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/core/raster/qgsrasterpipe.h                                      *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 ************************************************************************/






class QgsRasterPipe
{
%Docstring
Base class for processing modules.
%End

%TypeHeaderCode
#include "qgsrasterpipe.h"
%End
  public:
    enum Role
    {
      UnknownRole,
      ProviderRole,
      RendererRole,
      BrightnessRole,
      ResamplerRole,
      ProjectorRole,
      NullerRole,
      HueSaturationRole
    };

    QgsRasterPipe();
%Docstring
Constructor for QgsRasterPipe.
%End


    ~QgsRasterPipe();


    bool insert( int idx, QgsRasterInterface *interface /Transfer/ );
%Docstring
Try to insert interface at specified index and connect
if connection would fail, the interface is not inserted and ``False`` is returned
%End
%MethodCode
    sipRes = sipCpp->insert( a0, a1 );
    if ( !sipRes )
    {
      // if insertion failed transfer ownership back to python
      PyObject *o = sipGetPyObject( a1, sipType_QgsRasterInterface );
      if ( o )
        sipTransferBreak( o );
    }
%End

    bool replace( int idx, QgsRasterInterface *interface /Transfer/ );
%Docstring
Try to replace interface at specified index and connect
if connection would fail, the interface is not inserted and ``False`` is returned
%End

    bool set( QgsRasterInterface *interface /Transfer/ );
%Docstring
Insert a new known interface in default place or replace interface of the same
role if it already exists. Known interfaces are: QgsRasterDataProvider,
:py:class:`QgsRasterRenderer`, :py:class:`QgsRasterResampleFilter`, QgsRasterProjector and their
subclasses. For unknown interfaces it mus be explicitly specified position
where it should be inserted using insert() method.
%End

    bool remove( int idx );
%Docstring
Remove and delete interface at given index if possible
%End

    bool remove( QgsRasterInterface *interface );
%Docstring
Remove and delete interface from pipe if possible
%End

    int size() const;
    QgsRasterInterface *at( int idx ) const;
    QgsRasterInterface *last() const;

    bool setOn( int idx, bool on );
%Docstring
Set interface at index on/off
Returns ``True`` on success
%End

    bool canSetOn( int idx, bool on );
%Docstring
Test if interface at index may be switched on/off
%End

    QgsRasterDataProvider *provider() const;
    QgsRasterRenderer *renderer() const;
    QgsRasterResampleFilter *resampleFilter() const;
    QgsBrightnessContrastFilter *brightnessFilter() const;
    QgsHueSaturationFilter *hueSaturationFilter() const;
    QgsRasterProjector *projector() const;
    QgsRasterNuller *nuller() const;

  private:
    QgsRasterPipe( const QgsRasterPipe &pipe );
};



/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/core/raster/qgsrasterpipe.h                                      *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 ************************************************************************/