## ChamplainMapSourceChain ChamplainMapSourceChain — A map source simplifying creation of source chains |

## Functions

ChamplainMapSourceChain * | champlain_map_source_chain_new ()
void | champlain_map_source_chain_push ()
void | champlain_map_source_chain_pop ()

## Types and Values

struct | ChamplainMapSourceChain

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── ChamplainMapSource
                ╰── ChamplainMapSourceChain

## Description

This map source simplifies creation of map chains by providing two functions for their creation and modification in a stack-like manner: `champlain_map_source_chain_push()` and `champlain_map_source_chain_pop()`. For instance, to create a chain consisting of ChamplainMemoryCache, ChamplainFileCache and ChamplainNetworkTileSource, the map sources have to be pushed into the chain in the reverse order starting from ChamplainNetworkTileSource. After its creation, ChamplainMapSourceChain behaves as a chain of map sources it contains.

## Functions

### champlain_map_source_chain_new ()

    ChamplainMapSourceChain *
    champlain_map_source_chain_new (void);

Constructor of ChamplainMapSourceChain.

#### Returns

a new empty ChamplainMapSourceChain.

Since: 0.6

### champlain_map_source_chain_push ()

    void
    champlain_map_source_chain_push (ChamplainMapSourceChain *source_chain,
                                     ChamplainMapSource *map_source);

Pushes a map source into the chain.

#### Parameters

source_chain | a ChamplainMapSourceChain |
map_source | the ChamplainMapSource to be pushed into the chain |

Since: 0.6

### champlain_map_source_chain_pop ()

    void
    champlain_map_source_chain_pop (ChamplainMapSourceChain *source_chain);

Pops a map source from the top of the stack from the chain.

#### Parameters

source_chain | a ChamplainMapSourceChain |

Since: 0.6

## Types and Values

### struct ChamplainMapSourceChain

    struct ChamplainMapSourceChain;

The ChamplainMapSourceChain structure contains only private data and should be accessed using the provided API

Since: 0.6