Logo Search packages:      
Sourcecode: gaia version File versions  Download package

wwfetch.h

/*
 * gaia - opensource 3D interface to the planet
 * Copyright (C) 2006 gaia project
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */

#ifndef __WWFETCH_H__
#define __WWFETCH_H__

#include <curl/curl.h>
#include <stdlib.h>

#ifdef __cplusplus
extern "C" {
#endif

/* error codes */
typedef enum {
      /* no error */
      WWFETCH_OK = 0,

      /* malloc failed */
      WWFETCH_MALLOC_FAILED,

      /* internal buffer too small */
      WWFETCH_SMALL_BUFFER,

      /* curl error */
      WWFETCH_CURL_ERROR,

      /* curl init failed */
      WWFETCH_CURL_INIT_FAILED,

      /* unexpected data returned */
      WWFETCH_CORRUPT_DATA,

      /* unable to fetch data requested */
      WWFETCH_FETCH_FAILED,

      /* data requested does not exist */
      WWFETCH_NOT_FOUND,
} wwfetch_error;

/* wwfetch handle */
typedef struct wwfetch {
      /* cURL handle */
      CURL        *curl;

      /* cURL error code */
      int         lastcurlerror;

      /* headers for curl */
      struct curl_slist *curlheaders;

      /* buffer for file being downloaded */
      size_t            currentsize;
      unsigned char     *currentdata;
} wwfetch;

/* init/cleanup */
wwfetch_error     wwfetch_init(wwfetch *handle);
void        wwfetch_cleanup(wwfetch *handle);

/* errors */
const char  *wwfetch_strerror(int err);
int         wwfetch_getlastcurlerror(wwfetch *handle);

/* fetch specific types of data */
wwfetch_error     wwfetch_fetch_image(wwfetch *handle, int x, int y, int level);

/* retrieve data from library */
size_t            wwfetch_get_data_size(wwfetch *handle);
void        *wwfetch_get_data_ptr(wwfetch *handle);

#ifdef __cplusplus
}
#endif

#endif

Generated by  Doxygen 1.6.0   Back to index