## IdePipelineAddin IdePipelineAddin |

## Functions

void | ide_pipeline_addin_prepare ()
void | ide_pipeline_addin_load ()
void | ide_pipeline_addin_unload ()
void | ide_pipeline_addin_track ()

## Types and Values

#define | IDE_TYPE_PIPELINE_ADDIN
struct | IdePipelineAddinInterface
| IdePipelineAddin

## Object Hierarchy

        GInterface
        ╰── IdePipelineAddin

## Prerequisites

IdePipelineAddin requires IdeObject.

## Description

## Functions

### ide_pipeline_addin_prepare ()

    void
    ide_pipeline_addin_prepare (IdePipelineAddin *self,
                                IdePipeline *pipeline);

This function is called before prepare so that plugins may setup signals on the pipeline that may allow them to affect how other plugins interact.

For example, if you need to connect to pipeline::launcher-created, you might want to do that here.

#### Parameters

self | a IdePipelineAddin |
pipeline | an IdePipeline |

Since: 3.34

### ide_pipeline_addin_load ()

    void
    ide_pipeline_addin_load (IdePipelineAddin *self,
                             IdePipeline *pipeline);

### ide_pipeline_addin_unload ()

    void
    ide_pipeline_addin_unload (IdePipelineAddin *self,
                               IdePipeline *pipeline);

### ide_pipeline_addin_track ()

    void
    ide_pipeline_addin_track (IdePipelineAddin *self,
                              guint stage_id);

This function will track the stage_id that was returned from `ide_pipeline_attach()` or similar functions. Doing so results in the stage being automatically disconnected when the addin is unloaded.

This means that many IdePipelineAddin implementations do not need an unload vfunc if they track all registered stages.

You should not mix this function with manual pipeline disconnections. While it should work, that is not yet guaranteed.

#### Parameters

self | An IdePipelineAddin |
stage_id | a stage id returned from `ide_pipeline_attach()` |

Since: 3.32

## Types and Values

### IDE_TYPE_PIPELINE_ADDIN

    #define IDE_TYPE_PIPELINE_ADDIN (ide_pipeline_addin_get_type())

### struct IdePipelineAddinInterface

    struct IdePipelineAddinInterface {
      GTypeInterface type_interface;

      void (*load)    (IdePipelineAddin *self,
                       IdePipeline      *pipeline);
      void (*unload)  (IdePipelineAddin *self,
                       IdePipeline      *pipeline);
      void (*prepare) (IdePipelineAddin *self,
                       IdePipeline      *pipeline);
    };

### IdePipelineAddin

    typedef struct _IdePipelineAddin IdePipelineAddin;