[libchamplain] Documentation of the new loading chain.



commit a2dea0eeb45f145b7d8869111abb7c4d57a9f76c
Author: JiÅ?í Techet <techet gmail com>
Date:   Tue Jan 26 00:06:54 2010 +0100

    Documentation of the new loading chain.
    
    Added documentation comments for the new classes and functions. Some
    minor function renames and moving around.
    
    Signed-off-by: JiÅ?í Techet <techet gmail com>

 champlain/champlain-bounding-box.h            |    4 +
 champlain/champlain-error-tile-source.c       |   19 ++
 champlain/champlain-file-cache.c              |   98 +++++++++
 champlain/champlain-map-data-source.c         |    2 +-
 champlain/champlain-map-source-chain.c        |   44 ++++-
 champlain/champlain-map-source-chain.h        |    2 +-
 champlain/champlain-map-source-factory.c      |   14 ++-
 champlain/champlain-map-source.c              |  251 ++++++++++++++++++++++-
 champlain/champlain-map-source.h              |    7 +
 champlain/champlain-marker.c                  |    3 +-
 champlain/champlain-memphis-tile-source.c     |   31 ++--
 champlain/champlain-network-map-data-source.c |    6 +-
 champlain/champlain-network-tile-source.c     |  117 +++++++++++
 champlain/champlain-network-tile-source.h     |   12 +-
 champlain/champlain-tile-cache.c              |   87 ++++++++-
 champlain/champlain-tile-source.c             |  207 +++++++++++++++++--
 champlain/champlain-tile-source.h             |   13 +-
 champlain/champlain-tile.c                    |    1 +
 docs/reference/libchamplain-docs.sgml         |   10 +-
 docs/reference/libchamplain-sections.txt      |  272 +++++++++++++++++--------
 docs/reference/libchamplain.types             |    7 +
 21 files changed, 1055 insertions(+), 152 deletions(-)
---
diff --git a/champlain/champlain-bounding-box.h b/champlain/champlain-bounding-box.h
index 28b33ec..3bf5a8f 100644
--- a/champlain/champlain-bounding-box.h
+++ b/champlain/champlain-bounding-box.h
@@ -33,6 +33,10 @@ typedef struct _ChamplainBoundingBox ChamplainBoundingBox;
 
 /**
  * ChamplainBoundingBox:
+ * @left: left coordinate
+ * @bottom: bottom coordinate
+ * @right: right coordinate
+ * @top: top coordinate
  *
  * Defines the area of a ChamplainMapDataSource that contains data.
  *
diff --git a/champlain/champlain-error-tile-source.c b/champlain/champlain-error-tile-source.c
index 05c9211..d4b5df7 100644
--- a/champlain/champlain-error-tile-source.c
+++ b/champlain/champlain-error-tile-source.c
@@ -17,6 +17,15 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+/**
+ * SECTION:champlain-error-tile-source
+ * @short_description: A map source displaying error tiles
+ *
+ * #ChamplainErrorTileSource always fills a tile with error tile image.
+ * Applications can create their own error tile sources to change the look
+ * of the error tile.
+ */
+
 #include "champlain-error-tile-source.h"
 
 G_DEFINE_TYPE (ChamplainErrorTileSource, champlain_error_tile_source, CHAMPLAIN_TYPE_TILE_SOURCE);
@@ -65,6 +74,16 @@ champlain_error_tile_source_init (ChamplainErrorTileSource *error_source)
   priv->error_actor = NULL;
 }
 
+/**
+ * champlain_error_tile_source_new_full:
+ * @tile_size: size of the error tile
+ *
+ * Constructor of #ChamplainErrorTileSource.
+ *
+ * Returns: a constructed #ChamplainErrorTileSource
+ *
+ * Since: 0.6
+ */
 ChamplainErrorTileSource* champlain_error_tile_source_new_full (guint tile_size)
 {
   return g_object_new (CHAMPLAIN_TYPE_ERROR_TILE_SOURCE, "tile-size", tile_size, NULL);
diff --git a/champlain/champlain-file-cache.c b/champlain/champlain-file-cache.c
index c534cf1..a9c69d4 100644
--- a/champlain/champlain-file-cache.c
+++ b/champlain/champlain-file-cache.c
@@ -17,6 +17,16 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+/**
+ * SECTION:champlain-file-cache
+ * @short_description: Stores and loads cached tiles from the file system
+ *
+ * #ChamplainFileCache is a map source that stores and retrieves tiles from the
+ * file system. It can be temporary (deleted when the object is destroyed) or
+ * permanent. Tiles most frequently loaded gain in "popularity". This popularity
+ * is taken into account when purging the cache.
+ */
+
 #define DEBUG_FLAG CHAMPLAIN_DEBUG_CACHE
 #include "champlain-debug.h"
 
@@ -319,6 +329,15 @@ champlain_file_cache_class_init (ChamplainFileCacheClass *klass)
   object_class->set_property = champlain_file_cache_set_property;
   object_class->constructed = champlain_file_cache_constructed;
 
+  /**
+  * ChamplainFileCache:size-limit:
+  *
+  * The cache size limit in bytes.
+  *
+  * Note: this new value will not be applied until you call #champlain_cache_purge
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_uint ("size-limit",
                              "Size Limit",
                              "The cache's size limit (Mb)",
@@ -328,6 +347,13 @@ champlain_file_cache_class_init (ChamplainFileCacheClass *klass)
                              G_PARAM_CONSTRUCT | G_PARAM_READWRITE);
   g_object_class_install_property (object_class, PROP_SIZE_LIMIT, pspec);
 
+  /**
+  * ChamplainFileCache:cache-dir:
+  *
+  * The directory where the tile database is stored.
+  *
+  * Since: 0.6
+  */
   pspec = g_param_spec_string ("cache-dir",
                                "Cache Directory",
                                "The directory of the cache",
@@ -357,6 +383,16 @@ champlain_file_cache_init (ChamplainFileCache *file_cache)
   priv->stmt_update = NULL;
 }
 
+/**
+ * champlain_file_cache_new:
+ *
+ * Default constructor of #ChamplainFileCache.
+ *
+ * Returns: a constructed permanent cache of maximal size 100000000 B inside
+ * ~/.cache/champlain.
+ *
+ * Since: 0.6
+ */
 ChamplainFileCache* champlain_file_cache_new (void)
 {
   gchar *cache_path;
@@ -370,6 +406,22 @@ ChamplainFileCache* champlain_file_cache_new (void)
   return cache;
 }
 
+/**
+ * champlain_file_cache_new_full:
+ * @size_limit: maximal size of the cache in bytes
+ * @cache_dir: the directory where the cache is created. For temporary caches
+ * one more directory with random name is created inside this directory.
+ * When cache_dir == NULL, a cache in ~/.cache/champlain is used for permanent
+ * caches and /tmp for temporary caches.
+ * @persistent: if TRUE, the cache is persistent; otherwise the cache is
+ * temporary and will be deleted when the cache object is destructed.
+ *
+ * Constructor of #ChamplainFileCache.
+ *
+ * Returns: a constructed #ChamplainFileCache
+ *
+ * Since: 0.6
+ */
 ChamplainFileCache* champlain_file_cache_new_full (guint size_limit,
     const gchar *cache_dir, gboolean persistent)
 {
@@ -379,6 +431,16 @@ ChamplainFileCache* champlain_file_cache_new_full (guint size_limit,
   return cache;
 }
 
+/**
+ * champlain_file_cache_get_size_limit:
+ * @file_cache: a #ChamplainCache
+ *
+ * Gets the cache size limit in bytes.
+ *
+ * Returns: size limit
+ *
+ * Since: 0.4
+ */
 guint
 champlain_file_cache_get_size_limit (ChamplainFileCache *file_cache)
 {
@@ -388,6 +450,16 @@ champlain_file_cache_get_size_limit (ChamplainFileCache *file_cache)
   return priv->size_limit;
 }
 
+/**
+ * champlain_file_cache_get_cache_dir:
+ * @file_cache: a #ChamplainCache
+ *
+ * Gets the directory where the cache database is stored.
+ *
+ * Returns: the directory
+ *
+ * Since: 0.6
+ */
 const gchar *
 champlain_file_cache_get_cache_dir (ChamplainFileCache *file_cache)
 {
@@ -397,6 +469,15 @@ champlain_file_cache_get_cache_dir (ChamplainFileCache *file_cache)
   return priv->cache_dir;
 }
 
+/**
+ * champlain_file_cache_set_size_limit:
+ * @file_cache: a #ChamplainCache
+ * @size_limit: the cache limit in bytes
+ *
+ * Sets the cache size limit in bytes.
+ *
+ * Since: 0.4
+ */
 void
 champlain_file_cache_set_size_limit (ChamplainFileCache *file_cache,
                                      guint size_limit)
@@ -782,6 +863,15 @@ purge_on_idle (gpointer data)
   return FALSE;
 }
 
+/**
+ * champlain_file_cache_purge_on_idle:
+ * @file_cache: a #ChamplainCache
+ *
+ * Purge the cache from the less popular tiles until cache's size limit is reached.
+ * This is a non blocking call as the purge will happen when the application is idle
+ *
+ * Since: 0.4
+ */
 void
 champlain_file_cache_purge_on_idle (ChamplainFileCache *file_cache)
 {
@@ -789,6 +879,14 @@ champlain_file_cache_purge_on_idle (ChamplainFileCache *file_cache)
   g_idle_add (purge_on_idle, file_cache);
 }
 
+/**
+ * champlain_file_cache_purge:
+ * @file_cache: a #ChamplainCache
+ *
+ * Purge the cache from the less popular tiles until cache's size limit is reached.
+ *
+ * Since: 0.4
+ */
 void
 champlain_file_cache_purge (ChamplainFileCache *file_cache)
 {
diff --git a/champlain/champlain-map-data-source.c b/champlain/champlain-map-data-source.c
index 9e88335..fb3fcc1 100644
--- a/champlain/champlain-map-data-source.c
+++ b/champlain/champlain-map-data-source.c
@@ -193,7 +193,7 @@ champlain_map_data_source_init (ChamplainMapDataSource *self)
  * champlain_map_data_source_get_map_data:
  * @data_source: a #ChamplainMapDataSource
  *
- * Returns the #MemphisMap of the data source or NULL.
+ * Returns: the #MemphisMap of the data source or NULL.
  *
  * Since: 0.6
  */
diff --git a/champlain/champlain-map-source-chain.c b/champlain/champlain-map-source-chain.c
index 040e69a..38a97e1 100644
--- a/champlain/champlain-map-source-chain.c
+++ b/champlain/champlain-map-source-chain.c
@@ -16,6 +16,20 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+/**
+ * SECTION:champlain-map-source-chain
+ * @short_description: A map source simplifying creation of source chains
+ *
+ * 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 #ChamplainFileCache,
+ * #ChamplainNetworkTileSource and #ChamplainErrorTileSource, the map
+ * sources have to be pushed into the chain in the reverse order starting
+ * from #ChamplainErrorTileSource. After its creation, #ChamplainMapSourceChain
+ * behaves as a chain of map sources it contains.
+ */
+
 #include "champlain-map-source-chain.h"
 #include "champlain-tile-cache.h"
 #include "champlain-tile-source.h"
@@ -49,7 +63,7 @@ champlain_map_source_chain_dispose (GObject *object)
   ChamplainMapSourceChainPrivate *priv = GET_PRIVATE(object);
 
   while (priv->stack_top)
-    champlain_map_source_chain_pop_map_source (source_chain);
+    champlain_map_source_chain_pop (source_chain);
 
   G_OBJECT_CLASS (champlain_map_source_chain_parent_class)->dispose (object);
 }
@@ -91,6 +105,15 @@ champlain_map_source_chain_init (ChamplainMapSourceChain *source_chain)
   priv->sig_handler_id = 0;
 }
 
+/**
+ * champlain_map_source_chain_new:
+ *
+ * Constructor of #ChamplainMapSourceChain.
+ *
+ * Returns: a new empty #ChamplainMapSourceChain.
+ *
+ * Since: 0.6
+ */
 ChamplainMapSourceChain* champlain_map_source_chain_new (void)
 {
   return g_object_new (CHAMPLAIN_TYPE_MAP_SOURCE_CHAIN, NULL);
@@ -219,6 +242,15 @@ void reload_tiles_cb (ChamplainMapSource *map_source, ChamplainMapSourceChain *s
   g_signal_emit_by_name (source_chain, "reload-tiles", NULL);
 }
 
+/**
+ * champlain_map_source_chain_push:
+ * @source_chain: a #ChamplainMapSourceChain
+ * @map_source: the #ChamplainMapSource to be pushed into the chain
+ *
+ * Pushes a map source into the chain.
+ *
+ * Since: 0.6
+ */
 void champlain_map_source_chain_push (ChamplainMapSourceChain *source_chain, ChamplainMapSource *map_source)
 {
   ChamplainMapSourceChainPrivate *priv = GET_PRIVATE(source_chain);
@@ -256,7 +288,15 @@ void champlain_map_source_chain_push (ChamplainMapSourceChain *source_chain, Cha
                          G_CALLBACK (reload_tiles_cb), source_chain);
 }
 
-void champlain_map_source_chain_pop_map_source (ChamplainMapSourceChain *source_chain)
+/**
+ * champlain_map_source_chain_pop:
+ * @source_chain: a #ChamplainMapSourceChain
+ *
+ * Pops the map source from the top of the stack from the chain.
+ *
+ * Since: 0.6
+ */
+void champlain_map_source_chain_pop (ChamplainMapSourceChain *source_chain)
 {
   ChamplainMapSourceChainPrivate *priv = GET_PRIVATE(source_chain);
   ChamplainMapSource *old_stack_top = priv->stack_top;
diff --git a/champlain/champlain-map-source-chain.h b/champlain/champlain-map-source-chain.h
index 92d22c7..986424a 100644
--- a/champlain/champlain-map-source-chain.h
+++ b/champlain/champlain-map-source-chain.h
@@ -54,7 +54,7 @@ GType champlain_map_source_chain_get_type (void);
 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_map_source (ChamplainMapSourceChain *source_chain);
+void champlain_map_source_chain_pop (ChamplainMapSourceChain *source_chain);
 
 G_END_DECLS
 
diff --git a/champlain/champlain-map-source-factory.c b/champlain/champlain-map-source-factory.c
index eaeb393..e21e509 100644
--- a/champlain/champlain-map-source-factory.c
+++ b/champlain/champlain-map-source-factory.c
@@ -18,7 +18,7 @@
 
 /**
  * SECTION:champlain-map-source-factory
- * @short_description: Manages #ChamplainMapSource
+ * @short_description: Manages #ChamplainMapSource instances
  *
  * This factory manages the create of #ChamplainMapSource. It contains names
  * and constructor functions for each available map sources in libchamplain.
@@ -328,6 +328,7 @@ champlain_map_source_factory_dup_default (void)
 
 /**
  * champlain_map_source_factory_dup_list:
+ * @factory: the Factory
  *
  * Returns: the list of registered map sources, the items should not be freed,
  * the list should be freed with #g_slist_free.
@@ -372,6 +373,17 @@ champlain_map_source_factory_create (ChamplainMapSourceFactory *factory,
   return NULL;
 }
 
+/**
+ * champlain_map_source_factory_create_cached_source:
+ * @factory: the Factory
+ * @id: the wanted map source id
+ *
+ * Returns: a ready to use #ChamplainMapSourceChain consisting of
+ * #ChamplainFileCache, #ChamplainMapSource matching the given name, and
+ * #ChamplainErrorTileSource.
+ *
+ * Since: 0.6
+ */
 ChamplainMapSource * champlain_map_source_factory_create_cached_source (ChamplainMapSourceFactory *factory,
     const gchar *id)
 {
diff --git a/champlain/champlain-map-source.c b/champlain/champlain-map-source.c
index 04c9989..98c0c7c 100644
--- a/champlain/champlain-map-source.c
+++ b/champlain/champlain-map-source.c
@@ -16,6 +16,40 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+/**
+ * SECTION:champlain-map-source
+ * @short_description: A base class for map sources
+ *
+ * #ChamplainTile objects come from map sources which are represented by
+ * #ChamplainMapSource.  This is should be considered an abstract
+ * type as it does nothing of interest.
+ *
+ * When loading new tiles, #ChamplainView calls champlain_map_source_fill_tile()
+ * on the current #ChamplainMapSource passing it a #ChamplainTile to be filled
+ * with the image.
+ *
+ * Apart from being a base class of all map sources, #ChamplainMapSource
+ * also supports cooperation of multiple map sources by arranging them into
+ * chains. Every map source has the #ChamplainMapSource::next-source property
+ * that determines the next map source in the chain. When a function of
+ * a #ChamplainMapSource object is invoked, the map source may decide to
+ * delegate the work to the next map source in the chain by invoking the
+ * same function on it.
+
+ * To undertand the concept of chains, consider for instance a chain
+ * consisting of #ChamplainFileCache whose next source is
+ * #ChamplainNetworkTileSource whose next source is #ChamplainErrorTileSource.
+ * When champlain_map_source_fill_tile() is called on the first object of the
+ * chain, #ChamplainFileCache, the cache checks whether it contains the
+ * requested tile in its database. If it does, it returns the tile; otherwise,
+ * it calls champlain_map_source_fill_tile() on the next source in the chain
+ * (#ChamplainNetworkTileSource). The network tile source loads the tile
+ * from the network. When successful, it returns the tile; otherwise it requests
+ * the tile from the next source in the chain (#ChamplainErrorTileSource).
+ * #ChamplainErrorTileSource always generates an error tile, no matter what
+ * its next source is.
+ */
+
 #include "champlain-map-source.h"
 
 #include <math.h>
@@ -136,9 +170,17 @@ champlain_map_source_class_init (ChamplainMapSourceClass *klass)
   klass->get_min_zoom_level = NULL;
   klass->get_max_zoom_level = NULL;
   klass->get_tile_size = NULL;
+  klass->get_projection = NULL;
 
   klass->fill_tile = NULL;
 
+  /**
+  * ChamplainMapSource:next-source:
+  *
+  * Next source in the loading chain.
+  *
+  * Since: 0.6
+  */
   pspec = g_param_spec_object ("next-source",
                                "Next Source",
                                "Next source in the loading chain",
@@ -150,8 +192,8 @@ champlain_map_source_class_init (ChamplainMapSourceClass *klass)
   * ChamplainMapSource::reload-tiles:
   * @map_source: the #ChamplainMapSource that received the signal
   *
-  * The ::reload-tiles signal is emitted when the map source changed
-  * its style or data
+  * The ChamplainMapSource::reload-tiles signal is emitted when the map source
+  * changed its style or data
   *
   * Since: 0.6
   */
@@ -170,6 +212,16 @@ champlain_map_source_init (ChamplainMapSource *map_source)
   priv->sig_handler_id = 0;
 }
 
+/**
+ * champlain_map_source_get_next_source:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Get the next source in the chain.
+ *
+ * Returns: the next source in the chain.
+ *
+ * Since: 0.6
+ */
 ChamplainMapSource *
 champlain_map_source_get_next_source (ChamplainMapSource *map_source)
 {
@@ -186,6 +238,15 @@ void reload_tiles_cb (ChamplainMapSource *orig, ChamplainMapSource *self)
   g_signal_emit_by_name (self, "reload-tiles", NULL);
 }
 
+/**
+ * champlain_map_source_set_next_source:
+ * @map_source: a #ChamplainMapSource
+ * @next_source: the next #ChamplainMapSource in the chain
+ *
+ * Sets the next map source in the chain.
+ *
+ * Since: 0.6
+ */
 void
 champlain_map_source_set_next_source (ChamplainMapSource *map_source,
                                       ChamplainMapSource *next_source)
@@ -217,6 +278,16 @@ champlain_map_source_set_next_source (ChamplainMapSource *map_source,
   g_object_notify (G_OBJECT (map_source), "next-source");
 }
 
+/**
+ * champlain_map_source_get_id:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's id.
+ *
+ * Returns: the map source's id.
+ *
+ * Since: 0.4
+ */
 const gchar *
 champlain_map_source_get_id (ChamplainMapSource *map_source)
 {
@@ -225,6 +296,16 @@ champlain_map_source_get_id (ChamplainMapSource *map_source)
   return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_id (map_source);
 }
 
+/**
+ * champlain_map_source_get_name:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's name.
+ *
+ * Returns: the map source's name.
+ *
+ * Since: 0.4
+ */
 const gchar *
 champlain_map_source_get_name (ChamplainMapSource *map_source)
 {
@@ -233,6 +314,16 @@ champlain_map_source_get_name (ChamplainMapSource *map_source)
   return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_name (map_source);
 }
 
+/**
+ * champlain_map_source_get_license:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's license.
+ *
+ * Returns: the map source's license.
+ *
+ * Since: 0.4
+ */
 const gchar *
 champlain_map_source_get_license (ChamplainMapSource *map_source)
 {
@@ -241,6 +332,16 @@ champlain_map_source_get_license (ChamplainMapSource *map_source)
   return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_license (map_source);
 }
 
+/**
+ * champlain_map_source_get_license_uri:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's license URI.
+ *
+ * Returns: the map source's license URI.
+ *
+ * Since: 0.4
+ */
 const gchar *
 champlain_map_source_get_license_uri (ChamplainMapSource *map_source)
 {
@@ -249,6 +350,16 @@ champlain_map_source_get_license_uri (ChamplainMapSource *map_source)
   return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_license_uri (map_source);
 }
 
+/**
+ * champlain_map_source_get_min_zoom_level:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's minimum zoom level.
+ *
+ * Returns: the miminum zoom level this map source supports
+ *
+ * Since: 0.4
+ */
 guint
 champlain_map_source_get_min_zoom_level (ChamplainMapSource *map_source)
 {
@@ -257,6 +368,16 @@ champlain_map_source_get_min_zoom_level (ChamplainMapSource *map_source)
   return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_min_zoom_level (map_source);
 }
 
+/**
+ * champlain_map_source_get_max_zoom_level:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's maximum zoom level.
+ *
+ * Returns: the maximum zoom level this map source supports
+ *
+ * Since: 0.4
+ */
 guint
 champlain_map_source_get_max_zoom_level (ChamplainMapSource *map_source)
 {
@@ -265,6 +386,16 @@ champlain_map_source_get_max_zoom_level (ChamplainMapSource *map_source)
   return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_max_zoom_level (map_source);
 }
 
+/**
+ * champlain_map_source_get_tile_size:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's tile size.
+ *
+ * Returns: the tile's size (width and height) in pixels for this map source
+ *
+ * Since: 0.4
+ */
 guint
 champlain_map_source_get_tile_size (ChamplainMapSource *map_source)
 {
@@ -273,6 +404,37 @@ champlain_map_source_get_tile_size (ChamplainMapSource *map_source)
   return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_tile_size (map_source);
 }
 
+/**
+ * champlain_map_source_get_projection:
+ * @map_source: a #ChamplainMapSource
+ *
+ * Gets map source's projection.
+ *
+ * Returns: the map source's projection.
+ *
+ * Since: 0.4
+ */
+ChamplainMapProjection
+champlain_map_source_get_projection (ChamplainMapSource *map_source)
+{
+  g_return_val_if_fail (CHAMPLAIN_IS_MAP_SOURCE (map_source), CHAMPLAIN_MAP_PROJECTION_MERCATOR);
+
+  return CHAMPLAIN_MAP_SOURCE_GET_CLASS (map_source)->get_projection (map_source);
+}
+
+/**
+ * champlain_map_source_get_x:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ * @longitude: a longitude
+ *
+ * Gets the x position on the map using this map source's projection.
+ * (0, 0) is located at the top left.
+ *
+ * Returns: the x position
+ *
+ * Since: 0.4
+ */
 guint
 champlain_map_source_get_x (ChamplainMapSource *map_source,
                             guint zoom_level,
@@ -284,6 +446,19 @@ champlain_map_source_get_x (ChamplainMapSource *map_source,
   return ((longitude + 180.0) / 360.0 * pow (2.0, zoom_level)) * champlain_map_source_get_tile_size (map_source);
 }
 
+/**
+ * champlain_map_source_get_y:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ * @latitude: a latitude
+ *
+ * Gets the y position on the map using this map source's projection.
+ * (0, 0) is located at the top left.
+ *
+ * Returns: the y position
+ *
+ * Since: 0.4
+ */
 guint
 champlain_map_source_get_y (ChamplainMapSource *map_source,
                             guint zoom_level,
@@ -297,6 +472,19 @@ champlain_map_source_get_y (ChamplainMapSource *map_source,
            M_PI) / 2.0 * pow (2.0, zoom_level)) * champlain_map_source_get_tile_size (map_source);
 }
 
+/**
+ * champlain_map_source_get_longitude:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ * @x: a x position
+ *
+ * Gets the longitude corresponding to this x position in the map source's
+ * projection.
+ *
+ * Returns: the longitude
+ *
+ * Since: 0.4
+ */
 gdouble
 champlain_map_source_get_longitude (ChamplainMapSource *map_source,
                                     guint zoom_level,
@@ -309,6 +497,19 @@ champlain_map_source_get_longitude (ChamplainMapSource *map_source,
   return dx / pow (2.0, zoom_level) * 360.0 - 180;
 }
 
+/**
+ * champlain_map_source_get_latitude:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ * @y: a y position
+ *
+ * Gets the latitude corresponding to this y position in the map source's
+ * projection.
+ *
+ * Returns: the latitude
+ *
+ * Since: 0.4
+ */
 gdouble
 champlain_map_source_get_latitude (ChamplainMapSource *map_source,
                                    guint zoom_level,
@@ -322,6 +523,17 @@ champlain_map_source_get_latitude (ChamplainMapSource *map_source,
   return 180.0 / M_PI * atan (0.5 * (exp (n) - exp (-n)));
 }
 
+/**
+ * champlain_map_source_get_row_count:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ *
+ * Gets the number of tiles in a row at this zoom level for this map source.
+ *
+ * Returns: the number of tiles in a row
+ *
+ * Since: 0.4
+ */
 guint
 champlain_map_source_get_row_count (ChamplainMapSource *map_source,
                                     guint zoom_level)
@@ -333,6 +545,18 @@ champlain_map_source_get_row_count (ChamplainMapSource *map_source,
   return pow (2, zoom_level);
 }
 
+/**
+ * champlain_map_source_get_column_count:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ *
+ * Gets the number of tiles in a column at this zoom level for this map
+ * source.
+ *
+ * Returns: the number of tiles in a column
+ *
+ * Since: 0.4
+ */
 guint
 champlain_map_source_get_column_count (ChamplainMapSource *map_source,
                                        guint zoom_level)
@@ -346,6 +570,19 @@ champlain_map_source_get_column_count (ChamplainMapSource *map_source,
 
 #define EARTH_RADIUS 6378137.0 /* meters, Equatorial radius */
 
+/**
+ * champlain_map_source_get_meters_per_pixel:
+ * @map_source: a #ChamplainMapSource
+ * @zoom_level: the zoom level
+ * @latitude: a latitude
+ * @longitude: a longitude
+ *
+ * Gets meters per pixel at the position on the map using this map source's projection.
+ *
+ * Returns: the meters per pixel
+ *
+ * Since: 0.4.3
+ */
 gdouble
 champlain_map_source_get_meters_per_pixel (ChamplainMapSource *map_source,
     guint zoom_level,
@@ -366,6 +603,16 @@ champlain_map_source_get_meters_per_pixel (ChamplainMapSource *map_source,
          (tile_size * champlain_map_source_get_row_count (map_source, zoom_level));
 }
 
+/**
+ * champlain_map_source_fill_tile:
+ * @map_source: a #ChamplainMapSource
+ * @tile: A #ChamplainTile
+ *
+ * Fills the tile with image data (either from cache, network or rendered
+ * locally).
+ *
+ * Since: 0.4
+ */
 void
 champlain_map_source_fill_tile (ChamplainMapSource *map_source,
                                 ChamplainTile *tile)
diff --git a/champlain/champlain-map-source.h b/champlain/champlain-map-source.h
index 7436b33..c05cc7b 100644
--- a/champlain/champlain-map-source.h
+++ b/champlain/champlain-map-source.h
@@ -38,6 +38,11 @@ G_BEGIN_DECLS
 
 typedef struct _ChamplainMapSourceClass ChamplainMapSourceClass;
 
+typedef enum
+{
+  CHAMPLAIN_MAP_PROJECTION_MERCATOR
+} ChamplainMapProjection;
+
 struct _ChamplainMapSource
 {
   GInitiallyUnowned parent_instance;
@@ -54,6 +59,7 @@ struct _ChamplainMapSourceClass
   guint (*get_min_zoom_level) (ChamplainMapSource *map_source);
   guint (*get_max_zoom_level) (ChamplainMapSource *map_source);
   guint (*get_tile_size) (ChamplainMapSource *map_source);
+  ChamplainMapProjection (*get_projection) (ChamplainMapSource *map_source);
 
   void (*fill_tile) (ChamplainMapSource *map_source,
                      ChamplainTile *tile);
@@ -72,6 +78,7 @@ const gchar * champlain_map_source_get_license_uri (ChamplainMapSource *map_sour
 guint champlain_map_source_get_min_zoom_level (ChamplainMapSource *map_source);
 guint champlain_map_source_get_max_zoom_level (ChamplainMapSource *map_source);
 guint champlain_map_source_get_tile_size (ChamplainMapSource *map_source);
+ChamplainMapProjection champlain_map_source_get_projection (ChamplainMapSource *map_source);
 
 guint champlain_map_source_get_x (ChamplainMapSource *map_source,
                                   guint zoom_level,
diff --git a/champlain/champlain-marker.c b/champlain/champlain-marker.c
index 1665a03..51cd107 100644
--- a/champlain/champlain-marker.c
+++ b/champlain/champlain-marker.c
@@ -718,7 +718,8 @@ redraw_on_idle (gpointer gobject)
   return FALSE;
 }
 
-/** champlain_marker_queue_redraw:
+/**
+ * champlain_marker_queue_redraw:
  * @marker: a #ChamplainMarker
  *
  * Queue a redraw of the marker as soon as possible. This function should not
diff --git a/champlain/champlain-memphis-tile-source.c b/champlain/champlain-memphis-tile-source.c
index b83fcb6..a2fa284 100644
--- a/champlain/champlain-memphis-tile-source.c
+++ b/champlain/champlain-memphis-tile-source.c
@@ -35,11 +35,6 @@
  * (TODO: link to the specification) The default rules only show
  * highways as thin black lines.
  * Once loaded, rules can be queried and edited.
- *
- * Rendered tiles are cached. The cache is deleted if the map data or rules
- * are changed. This is the default behaviour, but it can be disabled with the
- * #ChamplainMemphisTileSource:persistent-cache property. A persistent cache
- * has to be managed by the client application.
  */
 
 #include "champlain-memphis-tile-source.h"
@@ -583,9 +578,9 @@ champlain_memphis_tile_source_set_map_data_source (
 
 /**
  * champlain_memphis_tile_source_get_map_data_source:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
  *
- * Returns the #ChamplainMapDataSource.
+ * Returns: the #ChamplainMapDataSource.
  *
  * Since: 0.6
  */
@@ -601,9 +596,9 @@ champlain_memphis_tile_source_get_map_data_source (
 
 /**
  * champlain_memphis_tile_source_get_background_color:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
  *
- * Returns the background color of the map as a newly-allocated
+ * Returns: the background color of the map as a newly-allocated
  * #ClutterColor.
  *
  * Since: 0.6
@@ -630,7 +625,7 @@ ClutterColor * champlain_memphis_tile_source_get_background_color (
 
 /**
  * champlain_memphis_tile_source_set_background_color:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
  * @color: a #ClutterColor
  *
  * Sets the background color of the map from a #ClutterColor.
@@ -656,7 +651,7 @@ champlain_memphis_tile_source_set_background_color (
 
 /**
  * champlain_memphis_tile_source_set_rule:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
  * @rule: a #MemphisRule
  *
  * Edits or adds a #MemphisRule to the rules-set. New rules are appended
@@ -666,7 +661,7 @@ champlain_memphis_tile_source_set_background_color (
  */
 void
 champlain_memphis_tile_source_set_rule (ChamplainMemphisTileSource *tile_source,
-                                       MemphisRule *rule)
+                                        MemphisRule *rule)
 {
   g_return_if_fail (CHAMPLAIN_IS_MEMPHIS_TILE_SOURCE (tile_source) &&
                     MEMPHIS_RULE (rule));
@@ -682,16 +677,16 @@ champlain_memphis_tile_source_set_rule (ChamplainMemphisTileSource *tile_source,
 
 /**
  * champlain_memphis_tile_source_get_rule:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
  * @id: an id string
  *
- * Returns the requested #MemphisRule or NULL if none is found.
+ * Returns: the requested #MemphisRule or NULL if none is found.
  *
  * Since: 0.6
  */
 MemphisRule *
 champlain_memphis_tile_source_get_rule (ChamplainMemphisTileSource *tile_source,
-                                       const gchar *id)
+                                        const gchar *id)
 {
   g_return_val_if_fail (CHAMPLAIN_IS_MEMPHIS_TILE_SOURCE (tile_source) &&
                         id != NULL, NULL);
@@ -708,9 +703,9 @@ champlain_memphis_tile_source_get_rule (ChamplainMemphisTileSource *tile_source,
 
 /**
  * champlain_memphis_tile_source_get_rule_ids:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
  *
- * Returns a #GList of id strings of the form:
+ * Returns: a #GList of id strings of the form:
  * key1|key2|...|keyN:value1|value2|...|valueM
  *
  * Example: "waterway:river|stream|canal"
@@ -734,7 +729,7 @@ champlain_memphis_tile_source_get_rule_ids (ChamplainMemphisTileSource *tile_sou
 
 /**
  * champlain_memphis_tile_source_remove_rule:
- * @map_source: a #ChamplainMemphisTileSource
+ * @tile_source: a #ChamplainMemphisTileSource
  * @id: an id string
  *
  * Removes the rule with the given id.
diff --git a/champlain/champlain-network-map-data-source.c b/champlain/champlain-network-map-data-source.c
index 81e4b4a..ac94ae7 100644
--- a/champlain/champlain-network-map-data-source.c
+++ b/champlain/champlain-network-map-data-source.c
@@ -221,7 +221,7 @@ champlain_network_map_data_source_init (ChamplainNetworkMapDataSource *self)
 /**
  * champlain_network_map_data_source_new:
  *
- * Returns a new #ChamplainNetworkMapDataSource
+ * Returns: a new #ChamplainNetworkMapDataSource
  *
  * Since: 0.6
  */
@@ -235,7 +235,7 @@ static void
 load_map_data_cb (SoupSession *session, SoupMessage *msg,
     gpointer user_data)
 {
-  ChamplainNetworkMapDataSource *self = 
+  ChamplainNetworkMapDataSource *self =
       CHAMPLAIN_NETWORK_MAP_DATA_SOURCE (user_data);
   ChamplainNetworkMapDataSourcePrivate *priv = GET_PRIVATE (self);
   ChamplainBoundingBox *bbox;
@@ -340,7 +340,7 @@ champlain_network_map_data_source_load_map_data (
  * champlain_network_map_data_source_get_api_uri:
  * @map_data_source: a #ChamplainNetworkMapDataSource
  *
- * Returns the URI of the API server.
+ * Returns: the URI of the API server.
  *
  * Since: 0.6
  */
diff --git a/champlain/champlain-network-tile-source.c b/champlain/champlain-network-tile-source.c
index 8ed45e1..7e946e0 100644
--- a/champlain/champlain-network-tile-source.c
+++ b/champlain/champlain-network-tile-source.c
@@ -17,6 +17,20 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+/**
+ * SECTION:champlain-network-tile-source
+ * @short_description: A map source that downloads tiles from a web server
+ *
+ * This object is specialized for map tiles that can be downloaded
+ * from a web server.  This includes all web based map services such as
+ * OpenStreetMap, Google Maps, Yahoo Maps and more.  This object contains
+ * all mechanisms necessary to download tiles.
+ *
+ * Some preconfigured network map sources are built-in this library,
+ * see #ChamplainMapSourceFactory.
+ *
+ */
+
 #include "config.h"
 
 #include "champlain-network-tile-source.h"
@@ -177,6 +191,13 @@ champlain_network_tile_source_class_init (ChamplainNetworkTileSourceClass *klass
 
   map_source_class->fill_tile = fill_tile;
 
+  /**
+  * ChamplainNetworkTileSource:uri-format
+  *
+  * The uri format of the tile source, see #champlain_network_tile_source_set_uri_format
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_string ("uri-format",
                                "URI Format",
                                "The URI format",
@@ -184,6 +205,13 @@ champlain_network_tile_source_class_init (ChamplainNetworkTileSourceClass *klass
                                (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
   g_object_class_install_property (object_class, PROP_URI_FORMAT, pspec);
 
+  /**
+  * ChamplainNetworkTileSource:offline
+  *
+  * Specifies whether the network tile source can access network
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_boolean ("offline",
                                 "Offline",
                                 "Offline",
@@ -191,6 +219,13 @@ champlain_network_tile_source_class_init (ChamplainNetworkTileSourceClass *klass
                                 G_PARAM_READWRITE);
   g_object_class_install_property (object_class, PROP_OFFLINE, pspec);
 
+  /**
+  * ChamplainNetworkTileSource:proxy-uri
+  *
+  * The proxy uri used to access network
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_string ("proxy-uri",
                                "Proxy URI",
                                "The proxy URI to use to access network",
@@ -220,6 +255,24 @@ champlain_network_tile_source_init (ChamplainNetworkTileSource *tile_source)
 
 }
 
+/**
+ * champlain_network_tile_source_new_full:
+ * @id: the map source's id
+ * @name: the map source's name
+ * @license: the map source's license
+ * @license_uri: the map source's license URI
+ * @min_zoom: the map source's minimum zoom level
+ * @max_zoom: the map source's maximum zoom level
+ * @tile_size: the map source's tile size (in pixels)
+ * @projection: the map source's projection
+ * @uri_format: the URI to fetch the tiles from, see #champlain_network_tile_source_set_uri_format
+ *
+ * Constructor of #ChamplainNetworkTileSource.
+ *
+ * Returns: a constructed #ChamplainNetworkTileSource
+ *
+ * Since: 0.4
+ */
 ChamplainNetworkTileSource*
 champlain_network_tile_source_new_full (const gchar *id,
                                         const gchar *name,
@@ -240,6 +293,17 @@ champlain_network_tile_source_new_full (const gchar *id,
   return source;
 }
 
+/**
+ * champlain_network_tile_source_get_uri_format:
+ * @tile_source: the #ChamplainNetworkTileSource
+ *
+ * Default constructor of #ChamplainNetworkTileSource.
+ *
+ * Returns: A URI format used for URI creation when downloading tiles. See
+ * champlain_network_tile_source_set_uri_format() for more information.
+ *
+ * Since: 0.6
+ */
 const gchar *
 champlain_network_tile_source_get_uri_format (ChamplainNetworkTileSource *tile_source)
 {
@@ -249,6 +313,21 @@ champlain_network_tile_source_get_uri_format (ChamplainNetworkTileSource *tile_s
   return priv->uri_format;
 }
 
+/**
+ * champlain_network_tile_source_set_uri_format:
+ * @tile_source: the #ChamplainNetworkTileSource
+ * @uri_format: the URI format
+ *
+ * A URI format is a URI where x, y and zoom level information have been
+ * marked for parsing and insertion.  There can be an unlimited number of
+ * marked items in a URI format.  They are delimited by "#" before and after
+ * the variable name. There are 3 defined variable names: X, Y, and Z.
+ *
+ * For example, this is the OpenStreetMap URI format:
+ * "http://tile.openstreetmap.org/\#Z\#/\#X\#/\#Y\#.png";
+ *
+ * Since: 0.4
+ */
 void
 champlain_network_tile_source_set_uri_format (ChamplainNetworkTileSource *tile_source,
     const gchar *uri_format)
@@ -263,6 +342,16 @@ champlain_network_tile_source_set_uri_format (ChamplainNetworkTileSource *tile_s
   g_object_notify (G_OBJECT (tile_source), "uri-format");
 }
 
+/**
+ * champlain_network_tile_source_get_proxy_uri:
+ * @tile_source: the #ChamplainNetworkTileSource
+ *
+ * Gets the proxy uri used to access network.
+ *
+ * Returns: the proxy uri
+ *
+ * Since: 0.6
+ */
 const gchar *
 champlain_network_tile_source_get_proxy_uri (ChamplainNetworkTileSource *tile_source)
 {
@@ -272,6 +361,15 @@ champlain_network_tile_source_get_proxy_uri (ChamplainNetworkTileSource *tile_so
   return priv->proxy_uri;
 }
 
+/**
+ * champlain_network_tile_source_set_proxy_uri:
+ * @tile_source: the #ChamplainNetworkTileSource
+ * @proxy_uri: the proxy uri used to access network
+ *
+ * Sets the proxy uri used to access network.
+ *
+ * Since: 0.6
+ */
 void
 champlain_network_tile_source_set_proxy_uri (ChamplainNetworkTileSource *tile_source,
     const gchar *proxy_uri)
@@ -298,6 +396,16 @@ champlain_network_tile_source_set_proxy_uri (ChamplainNetworkTileSource *tile_so
   g_object_notify (G_OBJECT (tile_source), "proxy-uri");
 }
 
+/**
+ * champlain_network_tile_source_get_offline:
+ * @tile_source: the #ChamplainNetworkTileSource
+ *
+ * Gets offline status.
+ *
+ * Returns: TRUE when the tile source is set to be offline; FALSE otherwise.
+ *
+ * Since: 0.6
+ */
 gboolean
 champlain_network_tile_source_get_offline (ChamplainNetworkTileSource *tile_source)
 {
@@ -307,6 +415,15 @@ champlain_network_tile_source_get_offline (ChamplainNetworkTileSource *tile_sour
   return priv->offline;
 }
 
+/**
+ * champlain_network_tile_source_set_offline:
+ * @tile_source: the #ChamplainNetworkTileSource
+ * @offline: TRUE when the tile source should be offline; FALSE otherwise
+ *
+ * Sets offline status.
+ *
+ * Since: 0.6
+ */
 void
 champlain_network_tile_source_set_offline (ChamplainNetworkTileSource *tile_source,
     gboolean offline)
diff --git a/champlain/champlain-network-tile-source.h b/champlain/champlain-network-tile-source.h
index bd7ba63..b73640d 100644
--- a/champlain/champlain-network-tile-source.h
+++ b/champlain/champlain-network-tile-source.h
@@ -61,16 +61,16 @@ ChamplainNetworkTileSource* champlain_network_tile_source_new_full (const gchar
     ChamplainMapProjection projection,
     const gchar *uri_format);
 
-const gchar * champlain_network_tile_source_get_uri_format (ChamplainNetworkTileSource *source);
-void champlain_network_tile_source_set_uri_format (ChamplainNetworkTileSource *source,
+const gchar * champlain_network_tile_source_get_uri_format (ChamplainNetworkTileSource *tile_source);
+void champlain_network_tile_source_set_uri_format (ChamplainNetworkTileSource *tile_source,
     const gchar *uri_format);
 
-gboolean champlain_network_tile_source_get_offline (ChamplainNetworkTileSource *source);
-void champlain_network_tile_source_set_offline (ChamplainNetworkTileSource *source,
+gboolean champlain_network_tile_source_get_offline (ChamplainNetworkTileSource *tile_source);
+void champlain_network_tile_source_set_offline (ChamplainNetworkTileSource *tile_source,
     gboolean offline);
 
-const gchar * champlain_network_tile_source_get_proxy_uri (ChamplainNetworkTileSource *source);
-void champlain_network_tile_source_set_proxy_uri (ChamplainNetworkTileSource *source,
+const gchar * champlain_network_tile_source_get_proxy_uri (ChamplainNetworkTileSource *tile_source);
+void champlain_network_tile_source_set_proxy_uri (ChamplainNetworkTileSource *tile_source,
     const gchar *proxy_uri);
 
 G_END_DECLS
diff --git a/champlain/champlain-tile-cache.c b/champlain/champlain-tile-cache.c
index c7c8354..1c9d3f2 100644
--- a/champlain/champlain-tile-cache.c
+++ b/champlain/champlain-tile-cache.c
@@ -16,6 +16,15 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+/**
+ * SECTION:champlain-tile-cache
+ * @short_description: A base class of tile caches
+ *
+ * This class defines properties and methods common to all caches (that is, map
+ * sources that permit storage and retrieval of tiles). Tiles are typically
+ * stored by #ChamplainTileSource objects.
+ */
+
 #include "champlain-tile-cache.h"
 
 G_DEFINE_TYPE (ChamplainTileCache, champlain_tile_cache, CHAMPLAIN_TYPE_MAP_SOURCE);
@@ -42,6 +51,7 @@ static const gchar *get_license_uri (ChamplainMapSource *map_source);
 static guint get_min_zoom_level (ChamplainMapSource *map_source);
 static guint get_max_zoom_level (ChamplainMapSource *map_source);
 static guint get_tile_size (ChamplainMapSource *map_source);
+static ChamplainMapProjection get_projection (ChamplainMapSource *map_source);
 
 static void
 champlain_tile_cache_get_property (GObject *object,
@@ -120,6 +130,7 @@ champlain_tile_cache_class_init (ChamplainTileCacheClass *klass)
   map_source_class->get_min_zoom_level = get_min_zoom_level;
   map_source_class->get_max_zoom_level = get_max_zoom_level;
   map_source_class->get_tile_size = get_tile_size;
+  map_source_class->get_projection = get_projection;
 
   map_source_class->fill_tile = NULL;
 
@@ -128,10 +139,18 @@ champlain_tile_cache_class_init (ChamplainTileCacheClass *klass)
   tile_cache_class->store_tile = NULL;
   tile_cache_class->clean = NULL;
 
+  /**
+  * ChamplainTileCache:persistent-cache
+  *
+  * Determines whether the cache is persistent or temporary (cleaned upon
+  * destruction)
+  *
+  * Since: 0.6
+  */
   pspec = g_param_spec_boolean ("persistent-cache",
                                 "Persistent Cache",
                                 "Specifies whether the cache is persistent",
-                                FALSE,
+                                TRUE,
                                 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
   g_object_class_install_property (object_class, PROP_PERSISTENT_CACHE, pspec);
 }
@@ -144,6 +163,16 @@ champlain_tile_cache_init (ChamplainTileCache *tile_cache)
   priv->persistent = FALSE;
 }
 
+/**
+ * champlain_tile_cache_get_persistent:
+ * @tile_cache: a #ChamplainTileCache
+ *
+ * Gets cache persistency information.
+ *
+ * Returns: TRUE when the cache is persistent; FALSE otherwise.
+ *
+ * Since: 0.6
+ */
 gboolean
 champlain_tile_cache_get_persistent (ChamplainTileCache *tile_cache)
 {
@@ -153,6 +182,17 @@ champlain_tile_cache_get_persistent (ChamplainTileCache *tile_cache)
   return priv->persistent;
 }
 
+/**
+ * champlain_tile_cache_store_tile:
+ * @tile_cache: a #ChamplainTileCache
+ * @tile: a #ChamplainTile
+ * @contents: the tile contents that should be stored
+ * @size: size of the contents in bytes
+ *
+ * Stores the tile including the metadata into the cache.
+ *
+ * Since: 0.6
+ */
 void
 champlain_tile_cache_store_tile (ChamplainTileCache *tile_cache,
                                  ChamplainTile *tile,
@@ -164,6 +204,15 @@ champlain_tile_cache_store_tile (ChamplainTileCache *tile_cache,
   return CHAMPLAIN_TILE_CACHE_GET_CLASS (tile_cache)->store_tile (tile_cache, tile, contents, size);
 }
 
+/**
+ * champlain_tile_cache_refresh_tile_time:
+ * @tile_cache: a #ChamplainTileCache
+ * @tile: a #ChamplainTile
+ *
+ * Refreshes the tile access time in the cache.
+ *
+ * Since: 0.6
+ */
 void
 champlain_tile_cache_refresh_tile_time (ChamplainTileCache *tile_cache, ChamplainTile *tile)
 {
@@ -172,6 +221,21 @@ champlain_tile_cache_refresh_tile_time (ChamplainTileCache *tile_cache, Champlai
   return CHAMPLAIN_TILE_CACHE_GET_CLASS (tile_cache)->refresh_tile_time (tile_cache, tile);
 }
 
+/**
+ * champlain_tile_cache_on_tile_filled:
+ * @tile_cache: a #ChamplainTileCache
+ * @tile: a #ChamplainTile
+ *
+ * When a cache fills a tile and the next source in the chain is a tile cache,
+ * it should call this function on the next source. This way all the caches
+ * preceding a tile source in the chain get informed that the tile was used and
+ * can modify their metadata accordingly in the implementation of this function.
+ * In addition, the call of this function should be chained so within the
+ * implementation of this function it should be called on the next source
+ * in the chain when next source is a tile cache.
+ *
+ * Since: 0.6
+ */
 void
 champlain_tile_cache_on_tile_filled (ChamplainTileCache *tile_cache, ChamplainTile *tile)
 {
@@ -180,6 +244,15 @@ champlain_tile_cache_on_tile_filled (ChamplainTileCache *tile_cache, ChamplainTi
   return CHAMPLAIN_TILE_CACHE_GET_CLASS (tile_cache)->on_tile_filled (tile_cache, tile);
 }
 
+/**
+ * champlain_tile_cache_clean:
+ * @tile_cache: a #ChamplainTileCache
+ *
+ * Erases the contents of the cache. This function will fail when the cache is
+ * not temporary.
+ *
+ * Since: 0.6
+ */
 void
 champlain_tile_cache_clean (ChamplainTileCache *tile_cache)
 {
@@ -271,3 +344,15 @@ get_tile_size (ChamplainMapSource *map_source)
 
   return champlain_map_source_get_tile_size (next_source);
 }
+
+static ChamplainMapProjection
+get_projection (ChamplainMapSource *map_source)
+{
+  g_return_val_if_fail (CHAMPLAIN_IS_TILE_CACHE (map_source), CHAMPLAIN_MAP_PROJECTION_MERCATOR);
+
+  ChamplainMapSource *next_source = champlain_map_source_get_next_source (map_source);
+
+  g_return_val_if_fail (CHAMPLAIN_IS_MAP_SOURCE (next_source), CHAMPLAIN_MAP_PROJECTION_MERCATOR);
+
+  return champlain_map_source_get_projection (next_source);
+}
diff --git a/champlain/champlain-tile-source.c b/champlain/champlain-tile-source.c
index efb1b6d..5ca364a 100644
--- a/champlain/champlain-tile-source.c
+++ b/champlain/champlain-tile-source.c
@@ -17,6 +17,14 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+/**
+ * SECTION:champlain-tile-source
+ * @short_description: A base class of tile sources
+ *
+ * This class defines properties common to all tile sources (that is, map
+ * sources that are not caches).
+ */
+
 #include "champlain-tile-source.h"
 #include "champlain-enum-types.h"
 
@@ -60,6 +68,7 @@ static const gchar *get_license_uri (ChamplainMapSource *map_source);
 static guint get_min_zoom_level (ChamplainMapSource *map_source);
 static guint get_max_zoom_level (ChamplainMapSource *map_source);
 static guint get_tile_size (ChamplainMapSource *map_source);
+static ChamplainMapProjection get_projection (ChamplainMapSource *map_source);
 
 static void
 champlain_tile_source_get_property (GObject *object,
@@ -209,9 +218,17 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
   map_source_class->get_min_zoom_level = get_min_zoom_level;
   map_source_class->get_max_zoom_level = get_max_zoom_level;
   map_source_class->get_tile_size = get_tile_size;
+  map_source_class->get_projection = get_projection;
 
   map_source_class->fill_tile = NULL;
 
+  /**
+  * ChamplainTileSource:id:
+  *
+  * The name of the tile source
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_string ("id",
                                "Id",
                                "The id of the tile source",
@@ -219,6 +236,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
                                (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
   g_object_class_install_property (object_class, PROP_ID, pspec);
 
+  /**
+  * ChamplainTileSource:name:
+  *
+  * The name of the tile source
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_string ("name",
                                "Name",
                                "The name of the tile source",
@@ -226,6 +250,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
                                (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
   g_object_class_install_property (object_class, PROP_NAME, pspec);
 
+  /**
+  * ChamplainTileSource:license:
+  *
+  * The usage license of the tile source
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_string ("license",
                                "License",
                                "The usage license of the tile source",
@@ -233,6 +264,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
                                (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
   g_object_class_install_property (object_class, PROP_LICENSE, pspec);
 
+  /**
+  * ChamplainTileSource:license-uri:
+  *
+  * The usage license's uri for more information
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_string ("license-uri",
                                "License-uri",
                                "The usage license's uri for more information",
@@ -240,6 +278,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
                                (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
   g_object_class_install_property (object_class, PROP_LICENSE_URI, pspec);
 
+  /**
+  * ChamplainTileSource:min-zoom-level:
+  *
+  * The minimum zoom level
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_uint ("min-zoom-level",
                              "Minimum Zoom Level",
                              "The minimum zoom level",
@@ -249,6 +294,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
                              (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
   g_object_class_install_property (object_class, PROP_MIN_ZOOM_LEVEL, pspec);
 
+  /**
+  * ChamplainTileSource:max-zoom-level:
+  *
+  * The maximum zoom level
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_uint ("max-zoom-level",
                              "Maximum Zoom Level",
                              "The maximum zoom level",
@@ -258,6 +310,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
                              (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
   g_object_class_install_property (object_class, PROP_MAX_ZOOM_LEVEL, pspec);
 
+  /**
+  * ChamplainTileSource:tile-size:
+  *
+  * The tile size of the tile source
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_uint ("tile-size",
                              "Tile Size",
                              "The tile size",
@@ -267,6 +326,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
                              (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
   g_object_class_install_property (object_class, PROP_TILE_SIZE, pspec);
 
+  /**
+  * ChamplainTileSource:projection
+  *
+  * The map projection of the tile source
+  *
+  * Since: 0.4
+  */
   pspec = g_param_spec_enum ("projection",
                              "Projection",
                              "The map projection",
@@ -275,6 +341,13 @@ champlain_tile_source_class_init (ChamplainTileSourceClass *klass)
                              (G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
   g_object_class_install_property (object_class, PROP_MAP_PROJECTION, pspec);
 
+  /**
+  * ChamplainTileSource:cache
+  *
+  * The cache used for tile storage
+  *
+  * Since: 0.6
+  */
   pspec = g_param_spec_object ("cache",
                                "Cache",
                                "Cache used for tile sorage",
@@ -298,15 +371,16 @@ champlain_tile_source_init (ChamplainTileSource *tile_source)
   priv->map_projection = CHAMPLAIN_MAP_PROJECTION_MERCATOR;
 }
 
-ChamplainMapProjection
-champlain_tile_source_get_projection (ChamplainTileSource *tile_source)
-{
-  g_return_val_if_fail (CHAMPLAIN_IS_TILE_SOURCE (tile_source), 0);
-
-  ChamplainTileSourcePrivate *priv = GET_PRIVATE(tile_source);
-  return priv->map_projection;
-}
-
+/**
+ * champlain_tile_source_get_cache:
+ * @tile_source: a #ChamplainTileSource
+ *
+ * Gets the cache used for storing tiles by this tile source.
+ *
+ * Returns: the cache
+ *
+ * Since: 0.6
+ */
 ChamplainTileCache *
 champlain_tile_source_get_cache (ChamplainTileSource *tile_source)
 {
@@ -316,18 +390,15 @@ champlain_tile_source_get_cache (ChamplainTileSource *tile_source)
   return priv->cache;
 }
 
-void
-champlain_tile_source_set_projection (ChamplainTileSource *tile_source,
-                                      ChamplainMapProjection projection)
-{
-  g_return_if_fail (CHAMPLAIN_IS_TILE_SOURCE (tile_source));
-
-  ChamplainTileSourcePrivate *priv = GET_PRIVATE(tile_source);
-
-  priv->map_projection = projection;
-  g_object_notify (G_OBJECT (tile_source), "projection");
-}
-
+/**
+ * champlain_tile_source_set_cache:
+ * @tile_source: a #ChamplainTileSource
+ * @cache: a #ChamplainTileCache
+ *
+ * Sets the map source's cache used for storing tiles.
+ *
+ * Since: 0.6
+ */
 void
 champlain_tile_source_set_cache (ChamplainTileSource *tile_source,
                                  ChamplainTileCache *cache)
@@ -414,6 +485,24 @@ get_tile_size (ChamplainMapSource *map_source)
   return priv->tile_size;
 }
 
+static ChamplainMapProjection
+get_projection (ChamplainMapSource *map_source)
+{
+  g_return_val_if_fail (CHAMPLAIN_IS_TILE_SOURCE (map_source), 0);
+
+  ChamplainTileSourcePrivate *priv = GET_PRIVATE(map_source);
+  return priv->map_projection;
+}
+
+/**
+ * champlain_tile_source_set_id:
+ * @tile_source: a #ChamplainTileSource
+ * @id: an id
+ *
+ * Sets the tile source's id.
+ *
+ * Since: 0.4
+ */
 void
 champlain_tile_source_set_id (ChamplainTileSource *tile_source,
                               const gchar *id)
@@ -428,6 +517,15 @@ champlain_tile_source_set_id (ChamplainTileSource *tile_source,
   g_object_notify (G_OBJECT (tile_source), "id");
 }
 
+/**
+ * champlain_tile_source_set_name:
+ * @tile_source: a #ChamplainTileSource
+ * @name: a name
+ *
+ * Sets the tile source's name.
+ *
+ * Since: 0.4
+ */
 void
 champlain_tile_source_set_name (ChamplainTileSource *tile_source,
                                 const gchar *name)
@@ -442,6 +540,15 @@ champlain_tile_source_set_name (ChamplainTileSource *tile_source,
   g_object_notify (G_OBJECT (tile_source), "name");
 }
 
+/**
+ * champlain_tile_source_set_license:
+ * @tile_source: a #ChamplainTileSource
+ * @license: the licence
+ *
+ * Sets the tile source's license.
+ *
+ * Since: 0.4
+ */
 void
 champlain_tile_source_set_license (ChamplainTileSource *tile_source,
                                    const gchar *license)
@@ -456,6 +563,15 @@ champlain_tile_source_set_license (ChamplainTileSource *tile_source,
   g_object_notify (G_OBJECT (tile_source), "license");
 }
 
+/**
+ * champlain_tile_source_set_license_uri:
+ * @tile_source: a #ChamplainTileSource
+ * @license_uri: the licence URI
+ *
+ * Sets the tile source's license URI.
+ *
+ * Since: 0.4
+ */
 void
 champlain_tile_source_set_license_uri (ChamplainTileSource *tile_source,
                                        const gchar *license_uri)
@@ -470,6 +586,15 @@ champlain_tile_source_set_license_uri (ChamplainTileSource *tile_source,
   g_object_notify (G_OBJECT (tile_source), "license-uri");
 }
 
+/**
+ * champlain_tile_source_set_min_zoom_level:
+ * @tile_source: a #ChamplainTileSource
+ * @zoom_level: the minimal zoom level
+ *
+ * Sets the tile source's minimal zoom level.
+ *
+ * Since: 0.6
+ */
 void
 champlain_tile_source_set_min_zoom_level (ChamplainTileSource *tile_source,
     guint zoom_level)
@@ -483,6 +608,15 @@ champlain_tile_source_set_min_zoom_level (ChamplainTileSource *tile_source,
   g_object_notify (G_OBJECT (tile_source), "min-zoom-level");
 }
 
+/**
+ * champlain_tile_source_set_max_zoom_level:
+ * @tile_source: a #ChamplainTileSource
+ * @zoom_level: the maximal zoom level
+ *
+ * Sets the tile source's maximal zoom level.
+ *
+ * Since: 0.6
+ */
 void
 champlain_tile_source_set_max_zoom_level (ChamplainTileSource *tile_source,
     guint zoom_level)
@@ -496,6 +630,15 @@ champlain_tile_source_set_max_zoom_level (ChamplainTileSource *tile_source,
   g_object_notify (G_OBJECT (tile_source), "max-zoom-level");
 }
 
+/**
+ * champlain_tile_source_set_tile_size:
+ * @tile_source: a #ChamplainTileSource
+ * @tile_size: the tile size
+ *
+ * Sets the tile source's tile size.
+ *
+ * Since: 0.6
+ */
 void
 champlain_tile_source_set_tile_size (ChamplainTileSource *tile_source,
                                      guint tile_size)
@@ -508,3 +651,25 @@ champlain_tile_source_set_tile_size (ChamplainTileSource *tile_source,
 
   g_object_notify (G_OBJECT (tile_source), "tile-size");
 }
+
+/**
+ * champlain_tile_source_set_projection:
+ * @tile_source: a #ChamplainTileSource
+ * @projection: a #ChamplainMapProjection
+ *
+ * Sets the tile source's projection.
+ *
+ * Since: 0.4
+ */
+void
+champlain_tile_source_set_projection (ChamplainTileSource *tile_source,
+                                      ChamplainMapProjection projection)
+{
+  g_return_if_fail (CHAMPLAIN_IS_TILE_SOURCE (tile_source));
+
+  ChamplainTileSourcePrivate *priv = GET_PRIVATE(tile_source);
+
+  priv->map_projection = projection;
+
+  g_object_notify (G_OBJECT (tile_source), "projection");
+}
diff --git a/champlain/champlain-tile-source.h b/champlain/champlain-tile-source.h
index 7e6fcc2..04f1624 100644
--- a/champlain/champlain-tile-source.h
+++ b/champlain/champlain-tile-source.h
@@ -40,11 +40,6 @@ G_BEGIN_DECLS
 typedef struct _ChamplainTileSource ChamplainTileSource;
 typedef struct _ChamplainTileSourceClass ChamplainTileSourceClass;
 
-typedef enum
-{
-  CHAMPLAIN_MAP_PROJECTION_MERCATOR
-} ChamplainMapProjection;
-
 struct _ChamplainTileSource
 {
   ChamplainMapSource parent_instance;
@@ -57,10 +52,6 @@ struct _ChamplainTileSourceClass
 
 GType champlain_tile_source_get_type (void);
 
-ChamplainMapProjection champlain_tile_source_get_projection (ChamplainTileSource *tile_source);
-void champlain_tile_source_set_projection (ChamplainTileSource *tile_source,
-    ChamplainMapProjection projection);
-
 ChamplainTileCache *champlain_tile_source_get_cache (ChamplainTileSource *tile_source);
 void champlain_tile_source_set_cache (ChamplainTileSource *tile_source,
                                       ChamplainTileCache *cache);
@@ -79,7 +70,9 @@ void champlain_tile_source_set_min_zoom_level (ChamplainTileSource *tile_source,
 void champlain_tile_source_set_max_zoom_level (ChamplainTileSource *tile_source,
     guint zoom_level);
 void champlain_tile_source_set_tile_size (ChamplainTileSource *tile_source,
-    guint zoom_level);
+    guint tile_size);
+void champlain_tile_source_set_projection (ChamplainTileSource *tile_source,
+    ChamplainMapProjection projection);
 
 G_END_DECLS
 
diff --git a/champlain/champlain-tile.c b/champlain/champlain-tile.c
index 4227373..e68e1ed 100644
--- a/champlain/champlain-tile.c
+++ b/champlain/champlain-tile.c
@@ -755,6 +755,7 @@ champlain_tile_set_content (ChamplainTile *self,
 
 /**
  * champlain_tile_get_content:
+ * @self: the #ChamplainTile
  *
  * Returns: the tile's content, this actor will change each time the tile's content changes.
  * You should not unref this content, it is owned by the tile.
diff --git a/docs/reference/libchamplain-docs.sgml b/docs/reference/libchamplain-docs.sgml
index 8da2c38..4f141cd 100644
--- a/docs/reference/libchamplain-docs.sgml
+++ b/docs/reference/libchamplain-docs.sgml
@@ -52,10 +52,14 @@
     <title>II. Map Source API Reference</title>
     <xi:include href="xml/champlain-map-source-factory.xml"/>
     <xi:include href="xml/champlain-map-source.xml"/>
-    <xi:include href="xml/champlain-network-map-source.xml"/>
-    <xi:include href="xml/champlain-memphis-map-source.xml"/>
     <xi:include href="xml/champlain-tile.xml"/>
-    <xi:include href="xml/champlain-cache.xml"/>
+    <xi:include href="xml/champlain-map-source-chain.xml"/>
+    <xi:include href="xml/champlain-tile-source.xml"/>
+    <xi:include href="xml/champlain-tile-cache.xml"/>
+    <xi:include href="xml/champlain-network-tile-source.xml"/>
+    <xi:include href="xml/champlain-memphis-tile-source.xml"/>
+    <xi:include href="xml/champlain-error-tile-source.xml"/>
+    <xi:include href="xml/champlain-file-cache.xml"/>
   </chapter>
   <chapter>
     <title>III. Map Data Source API Reference</title>
diff --git a/docs/reference/libchamplain-sections.txt b/docs/reference/libchamplain-sections.txt
index a4dd974..afe9237 100644
--- a/docs/reference/libchamplain-sections.txt
+++ b/docs/reference/libchamplain-sections.txt
@@ -2,27 +2,24 @@
 <FILE>champlain-map-source</FILE>
 <TITLE>ChamplainMapSource</TITLE>
 ChamplainMapProjection
-ChamplainMapSource
+champlain_map_source_get_id
+champlain_map_source_get_name
+champlain_map_source_get_license
+champlain_map_source_get_license_uri
 champlain_map_source_get_min_zoom_level
 champlain_map_source_get_max_zoom_level
 champlain_map_source_get_tile_size
+champlain_map_source_get_projection
 champlain_map_source_get_x
 champlain_map_source_get_y
 champlain_map_source_get_longitude
 champlain_map_source_get_latitude
 champlain_map_source_get_row_count
 champlain_map_source_get_column_count
+champlain_map_source_get_meters_per_pixel
 champlain_map_source_fill_tile
-champlain_map_source_set_name
-champlain_map_source_get_name
-champlain_map_source_set_license
-champlain_map_source_get_license
-champlain_map_source_set_license_uri
-champlain_map_source_get_license_uri
-champlain_map_source_set_projection
-champlain_map_source_get_projection
-champlain_map_source_get_id
-champlain_map_source_set_id
+champlain_map_source_get_next_source
+champlain_map_source_set_next_source
 <SUBSECTION Standard>
 CHAMPLAIN_MAP_SOURCE
 CHAMPLAIN_IS_MAP_SOURCE
@@ -33,13 +30,12 @@ CHAMPLAIN_IS_MAP_SOURCE_CLASS
 CHAMPLAIN_MAP_SOURCE_GET_CLASS
 <SUBSECTION Private>
 ChamplainMapSourceClass
-ChamplainMapSourcePrivate
+ChamplainMapSource
 </SECTION>
 
 <SECTION>
 <FILE>champlain-marker</FILE>
 <TITLE>ChamplainMarker</TITLE>
-ChamplainMarker
 champlain_marker_set_highlight_color
 champlain_marker_new
 champlain_marker_new_with_text
@@ -82,6 +78,7 @@ CHAMPLAIN_MARKER_GET_CLASS
 <SUBSECTION Private>
 ChamplainMarkerClass
 ChamplainMarkerPrivate
+ChamplainMarker
 </SECTION>
 
 <SECTION>
@@ -170,6 +167,14 @@ champlain_view_set_zoom_level
 champlain_view_get_zoom_level
 champlain_view_set_zoom_on_double_click
 champlain_view_get_zoom_on_double_click
+champlain_view_set_license_text
+champlain_view_get_license_text
+champlain_view_set_max_scale_width
+champlain_view_get_max_scale_width
+champlain_view_set_scale_unit
+champlain_view_get_scale_unit
+champlain_view_set_show_scale
+champlain_view_get_show_scale
 champlain_view_add_layer
 champlain_view_remove_layer
 champlain_view_get_coords_from_event
@@ -189,21 +194,26 @@ ChamplainViewPrivate
 </SECTION>
 
 <SECTION>
-<FILE>champlain-network-map-source</FILE>
-<TITLE>ChamplainNetworkMapSource</TITLE>
-ChamplainNetworkMapSource
-champlain_network_map_source_new_full
-champlain_network_map_source_get_tile_uri
-champlain_network_map_source_set_uri_format
-champlain_network_map_source_fill_tile
+<FILE>champlain-network-tile-source</FILE>
+<TITLE>ChamplainNetworkTileSource</TITLE>
+ChamplainNetworkTileSource
+champlain_network_tile_source_new_full
+champlain_network_tile_source_set_uri_format
+champlain_network_tile_source_get_uri_format
+champlain_network_tile_source_set_offline
+champlain_network_tile_source_get_offline
+champlain_network_tile_source_set_proxy_uri
+champlain_network_tile_source_get_proxy_uri
 <SUBSECTION Standard>
-CHAMPLAIN_NETWORK_MAP_SOURCE
-CHAMPLAIN_IS_NETWORK_MAP_SOURCE
-CHAMPLAIN_TYPE_NETWORK_MAP_SOURCE
-champlain_network_map_source_get_type
-CHAMPLAIN_NETWORK_MAP_SOURCE_CLASS
-CHAMPLAIN_IS_NETWORK_MAP_SOURCE_CLASS
-CHAMPLAIN_NETWORK_MAP_SOURCE_GET_CLASS
+CHAMPLAIN_NETWORK_TILE_SOURCE
+CHAMPLAIN_IS_NETWORK_TILE_SOURCE
+CHAMPLAIN_TYPE_NETWORK_TILE_SOURCE
+champlain_network_tile_source_get_type
+CHAMPLAIN_NETWORK_TILE_SOURCE_CLASS
+CHAMPLAIN_IS_NETWORK_TILE_SOURCE_CLASS
+CHAMPLAIN_NETWORK_TILE_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainNetworkTileSourceClass
 </SECTION>
 
 <SECTION>
@@ -217,16 +227,12 @@ champlain_tile_get_y
 champlain_tile_get_zoom_level
 champlain_tile_get_size
 champlain_tile_get_state
-champlain_tile_get_uri
-champlain_tile_get_filename
 champlain_tile_get_actor
 champlain_tile_set_x
 champlain_tile_set_y
 champlain_tile_set_zoom_level
 champlain_tile_set_size
 champlain_tile_set_state
-champlain_tile_set_uri
-champlain_tile_set_filename
 champlain_tile_get_content
 champlain_tile_get_etag
 champlain_tile_get_modified_time
@@ -242,6 +248,9 @@ champlain_tile_get_type
 CHAMPLAIN_TILE_CLASS
 CHAMPLAIN_IS_TILE_CLASS
 CHAMPLAIN_TILE_GET_CLASS
+<SUBSECTION Private>
+ChamplainTileClass
+ChamplainTilePrivate
 </SECTION>
 
 <SECTION>
@@ -265,6 +274,8 @@ champlain_layer_get_type
 CHAMPLAIN_LAYER_CLASS
 CHAMPLAIN_IS_LAYER_CLASS
 CHAMPLAIN_LAYER_GET_CLASS
+<SUBSECTION Private>
+ChamplainLayerClass
 </SECTION>
 
 <SECTION>
@@ -359,30 +370,24 @@ champlain_point_get_type
 </SECTION>
 
 <SECTION>
-<FILE>champlain-cache</FILE>
-<TITLE>ChamplainCache</TITLE>
-ChamplainCache
-ChamplainCacheClass
-champlain_cache_dup_default
-champlain_cache_fill_tile
-champlain_cache_dup_default
-champlain_cache_get_size_limit
-champlain_cache_purge
-champlain_cache_purge_on_idle
-champlain_cache_set_size_limit
-champlain_cache_tile_is_expired
-champlain_cache_update_tile
-champlain_cache_update_tile_with_session
-champlain_cache_delete_session
-champlain_cache_get_filename
+<FILE>champlain-tile-cache</FILE>
+<TITLE>ChamplainTileCache</TITLE>
+ChamplainTileCache
+champlain_tile_cache_get_persistent
+champlain_tile_cache_store_tile
+champlain_tile_cache_refresh_tile_time
+champlain_tile_cache_on_tile_filled
+champlain_tile_cache_clean
 <SUBSECTION Standard>
-CHAMPLAIN_CACHE
-CHAMPLAIN_IS_CACHE
-CHAMPLAIN_TYPE_CACHE
-champlain_cache_get_type
-CHAMPLAIN_CACHE_CLASS
-CHAMPLAIN_IS_CACHE_CLASS
-CHAMPLAIN_CACHE_GET_CLASS
+CHAMPLAIN_TILE_CACHE
+CHAMPLAIN_IS_TILE_CACHE
+CHAMPLAIN_TYPE_TILE_CACHE
+champlain_tile_cache_get_type
+CHAMPLAIN_TILE_CACHE_CLASS
+CHAMPLAIN_IS_TILE_CACHE_CLASS
+CHAMPLAIN_TILE_CACHE_GET_CLASS
+<SUBSECTION Private>
+ChamplainTileCacheClass
 </SECTION>
 
 <SECTION>
@@ -394,12 +399,16 @@ ChamplainMapSourceConstructor
 champlain_map_source_factory_dup_default
 champlain_map_source_factory_dup_list
 champlain_map_source_factory_create
+champlain_map_source_factory_create_cached_source
 champlain_map_source_factory_register
-champlain_map_source_desc_copy
-champlain_map_source_desc_free
-champlain_map_source_desc_get_type
-champlain_map_source_desc_new
-champlain_map_source_factory_get_list
+CHAMPLAIN_MAP_SOURCE_OSM_MAPNIK
+CHAMPLAIN_MAP_SOURCE_OSM_OSMARENDER
+CHAMPLAIN_MAP_SOURCE_OSM_CYCLE_MAP
+CHAMPLAIN_MAP_SOURCE_OSM_TRANSPORT_MAP
+CHAMPLAIN_MAP_SOURCE_OAM
+CHAMPLAIN_MAP_SOURCE_MFF_RELIEF
+CHAMPLAIN_MAP_SOURCE_MEMPHIS_LOCAL
+CHAMPLAIN_MAP_SOURCE_MEMPHIS_NETWORK
 <SUBSECTION Standard>
 CHAMPLAIN_MAP_SOURCE_FACTORY
 CHAMPLAIN_IS_MAP_SOURCE_FACTORY
@@ -408,6 +417,9 @@ champlain_map_source_factory_get_type
 CHAMPLAIN_MAP_SOURCE_FACTORY_CLASS
 CHAMPLAIN_IS_MAP_SOURCE_FACTORY_CLASS
 CHAMPLAIN_MAP_SOURCE_FACTORY_GET_CLASS
+<SUBSECTION Private>
+ChamplainMapSourceFactoryClass
+ChamplainMapSourceFactoryPrivate
 </SECTION>
 
 <SECTION>
@@ -439,6 +451,9 @@ champlain_polygon_get_type
 CHAMPLAIN_POLYGON_CLASS
 CHAMPLAIN_IS_POLYGON_CLASS
 CHAMPLAIN_POLYGON_GET_CLASS
+<SUBSECTION Private>
+ChamplainPolygonClass
+ChamplainPolygonPrivate
 </SECTION>
 
 <SECTION>
@@ -465,33 +480,35 @@ CHAMPLAIN_SELECTION_LAYER_CLASS
 CHAMPLAIN_SELECTION_LAYER_GET_CLASS
 CHAMPLAIN_TYPE_SELECTION_LAYER
 champlain_selection_layer_get_type
+<SUBSECTION Private>
+ChamplainSelectionLayerClass
+ChamplainSelectionLayerPrivate
 </SECTION>
 
 <SECTION>
-<FILE>champlain-memphis-map-source</FILE>
-<TITLE>ChamplainMemphisMapSource</TITLE>
-ChamplainMemphisMapSource
-champlain_memphis_map_source_new_full
-champlain_memphis_map_source_load_rules
-champlain_memphis_map_source_set_background_color
-champlain_memphis_map_source_get_background_color
-champlain_memphis_map_source_set_map_data_source
-champlain_memphis_map_source_get_map_data_source
-champlain_memphis_map_source_set_rule
-champlain_memphis_map_source_get_rule
-champlain_memphis_map_source_remove_rule
-champlain_memphis_map_source_get_rule_ids
-champlain_memphis_map_source_set_session_id
-champlain_memphis_map_source_get_session_id
-champlain_memphis_map_source_delete_session_cache
+<FILE>champlain-memphis-tile-source</FILE>
+<TITLE>ChamplainMemphisTileSource</TITLE>
+ChamplainMemphisTileSource
+champlain_memphis_tile_source_new_full
+champlain_memphis_tile_source_load_rules
+champlain_memphis_tile_source_set_background_color
+champlain_memphis_tile_source_get_background_color
+champlain_memphis_tile_source_set_map_data_source
+champlain_memphis_tile_source_get_map_data_source
+champlain_memphis_tile_source_set_rule
+champlain_memphis_tile_source_get_rule
+champlain_memphis_tile_source_remove_rule
+champlain_memphis_tile_source_get_rule_ids
 <SUBSECTION Standard>
-CHAMPLAIN_MEMPHIS_MAP_SOURCE
-CHAMPLAIN_IS_MEMPHIS_MAP_SOURCE
-CHAMPLAIN_TYPE_MEMPHIS_MAP_SOURCE
-champlain_memphis_map_source_get_type
-CHAMPLAIN_MEMPHIS_MAP_SOURCE_CLASS
-CHAMPLAIN_IS_MEMPHIS_MAP_SOURCE_CLASS
-CHAMPLAIN_MEMPHIS_MAP_SOURCE_GET_CLASS
+CHAMPLAIN_MEMPHIS_TILE_SOURCE
+CHAMPLAIN_IS_MEMPHIS_TILE_SOURCE
+CHAMPLAIN_TYPE_MEMPHIS_TILE_SOURCE
+champlain_memphis_tile_source_get_type
+CHAMPLAIN_MEMPHIS_TILE_SOURCE_CLASS
+CHAMPLAIN_IS_MEMPHIS_TILE_SOURCE_CLASS
+CHAMPLAIN_MEMPHIS_TILE_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainMemphisTileSourceClass
 </SECTION>
 
 <SECTION>
@@ -507,6 +524,8 @@ champlain_map_data_source_get_type
 CHAMPLAIN_MAP_DATA_SOURCE_CLASS
 CHAMPLAIN_IS_MAP_DATA_SOURCE_CLASS
 CHAMPLAIN_MAP_DATA_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainMapDataSourceClass
 </SECTION>
 
 <SECTION>
@@ -523,6 +542,8 @@ champlain_local_map_data_source_get_type
 CHAMPLAIN_LOCAL_MAP_DATA_SOURCE_CLASS
 CHAMPLAIN_IS_LOCAL_MAP_DATA_SOURCE_CLASS
 CHAMPLAIN_LOCAL_MAP_DATA_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainLocalMapDataSourceClass
 </SECTION>
 
 <SECTION>
@@ -541,6 +562,8 @@ champlain_network_map_data_source_get_type
 CHAMPLAIN_NETWORK_MAP_DATA_SOURCE_CLASS
 CHAMPLAIN_IS_NETWORK_MAP_DATA_SOURCE_CLASS
 CHAMPLAIN_NETWORK_MAP_DATA_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainNetworkMapDataSourceClass
 </SECTION>
 
 <SECTION>
@@ -556,3 +579,88 @@ CHAMPLAIN_BOUNDING_BOX
 CHAMPLAIN_TYPE_BOUNDING_BOX
 champlain_bounding_box_get_type
 </SECTION>
+
+<SECTION>
+<FILE>champlain-map-source-chain</FILE>
+<TITLE>ChamplainMapSourceChain</TITLE>
+ChamplainMapSourceChain
+champlain_map_source_chain_new
+champlain_map_source_chain_push
+champlain_map_source_chain_pop
+<SUBSECTION Standard>
+CHAMPLAIN_MAP_SOURCE_CHAIN
+CHAMPLAIN_IS_MAP_SOURCE_CHAIN
+CHAMPLAIN_TYPE_MAP_SOURCE_CHAIN
+champlain_map_source_chain_get_type
+CHAMPLAIN_MAP_SOURCE_CHAIN_CLASS
+CHAMPLAIN_IS_MAP_SOURCE_CHAIN_CLASS
+CHAMPLAIN_MAP_SOURCE_CHAIN_GET_CLASS
+<SUBSECTION Private>
+ChamplainMapSourceChainClass
+</SECTION>
+
+<SECTION>
+<FILE>champlain-tile-source</FILE>
+<TITLE>ChamplainTileSource</TITLE>
+ChamplainTileSource
+champlain_tile_source_set_cache
+champlain_tile_source_get_cache
+champlain_tile_source_set_id
+champlain_tile_source_set_name
+champlain_tile_source_set_license
+champlain_tile_source_set_license_uri
+champlain_tile_source_set_min_zoom_level
+champlain_tile_source_set_max_zoom_level
+champlain_tile_source_set_tile_size
+champlain_tile_source_set_projection
+<SUBSECTION Standard>
+CHAMPLAIN_TILE_SOURCE
+CHAMPLAIN_IS_TILE_SOURCE
+CHAMPLAIN_TYPE_TILE_SOURCE
+champlain_tile_source_get_type
+CHAMPLAIN_TILE_SOURCE_CLASS
+CHAMPLAIN_IS_TILE_SOURCE_CLASS
+CHAMPLAIN_TILE_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainTileSourceClass
+</SECTION>
+
+<SECTION>
+<FILE>champlain-error-tile-source</FILE>
+<TITLE>ChamplainErrorTileSource</TITLE>
+ChamplainErrorTileSource
+champlain_error_tile_source_new_full
+<SUBSECTION Standard>
+CHAMPLAIN_ERROR_TILE_SOURCE
+CHAMPLAIN_IS_ERROR_TILE_SOURCE
+CHAMPLAIN_TYPE_ERROR_TILE_SOURCE
+champlain_error_tile_source_get_type
+CHAMPLAIN_ERROR_TILE_SOURCE_CLASS
+CHAMPLAIN_IS_ERROR_TILE_SOURCE_CLASS
+CHAMPLAIN_ERROR_TILE_SOURCE_GET_CLASS
+<SUBSECTION Private>
+ChamplainErrorTileSourceClass
+</SECTION>
+
+<SECTION>
+<FILE>champlain-file-cache</FILE>
+<TITLE>ChamplainFileCache</TITLE>
+ChamplainFileCache
+champlain_file_cache_new
+champlain_file_cache_new_full
+champlain_file_cache_set_size_limit
+champlain_file_cache_get_size_limit
+champlain_file_cache_get_cache_dir
+champlain_file_cache_purge
+champlain_file_cache_purge_on_idle
+<SUBSECTION Standard>
+CHAMPLAIN_FILE_CACHE
+CHAMPLAIN_IS_FILE_CACHE
+CHAMPLAIN_TYPE_FILE_CACHE
+champlain_file_cache_get_type
+CHAMPLAIN_FILE_CACHE_CLASS
+CHAMPLAIN_IS_FILE_CACHE_CLASS
+CHAMPLAIN_FILE_CACHE_GET_CLASS
+<SUBSECTION Private>
+ChamplainFileCacheClass
+</SECTION>
diff --git a/docs/reference/libchamplain.types b/docs/reference/libchamplain.types
index 2e53708..a7f00ba 100644
--- a/docs/reference/libchamplain.types
+++ b/docs/reference/libchamplain.types
@@ -6,10 +6,17 @@ champlain_marker_get_type
 champlain_layer_get_type
 champlain_selection_layer_get_type
 champlain_map_source_get_type
+champlain_map_source_chain_get_type
+champlain_tile_source_get_type
+champlain_tile_cache_get_type
+champlain_network_tile_source_get_type
+champlain_error_tile_source_get_type
+champlain_file_cache_get_type
 champlain_tile_get_type
 champlain_map_source_factory_get_type
 champlain_polygon_get_type
 champlain_point_get_type
+champlain_memphis_tile_source_get_type
 champlain_map_data_source_get_type
 champlain_local_map_data_source_get_type
 champlain_network_map_data_source_get_type



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]