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

## Synopsis

    struct              ChamplainMapSourceChain;
    ChamplainMapSourceChain * champlain_map_source_chain_new
                                                            (void);
    void                champlain_map_source_chain_push     (ChamplainMapSourceChain *source_chain,
                                                             ChamplainMapSource *map_source);
    void                champlain_map_source_chain_pop      (ChamplainMapSourceChain *source_chain);

## 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.

## Details

### struct ChamplainMapSourceChain

    struct ChamplainMapSourceChain;

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

Since 0.6

### 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.

`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.

`source_chain` : | a ChamplainMapSourceChain

Since 0.6