src/lib/error.c
author Tero Marttila <terom@fixme.fi>
Tue, 26 Jan 2010 21:22:43 +0200
changeset 123 81d1cad8b588
parent 86 d4a62899587f
permissions -rw-r--r--
docfix README for new Makefile
17
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
#include "error.h"
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
18
f92a24ab046e add missing lib/tile.*
Tero Marttila <terom@fixme.fi>
parents: 17
diff changeset
     3
/*
f92a24ab046e add missing lib/tile.*
Tero Marttila <terom@fixme.fi>
parents: 17
diff changeset
     4
 * Mapping for error codes
f92a24ab046e add missing lib/tile.*
Tero Marttila <terom@fixme.fi>
parents: 17
diff changeset
     5
 */
17
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
const char *error_names[PT_ERR_MAX] = {
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
    [PT_SUCCESS]                = "Success",
65
e02bede4a6e4 report invalid error codes/names better
Tero Marttila <terom@fixme.fi>
parents: 59
diff changeset
     8
    [PT_ERR]                    = "Unspecified error",
17
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
    [PT_ERR_MEM]                = "malloc()",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
    [PT_ERR_PATH]               = "path",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
    [PT_ERR_OPEN_MODE]          = "open_mode",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
    
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
    [PT_ERR_IMG_STAT]           = "stat(.png)",
69
1d188aa94aee pt_png_check, and fclose() pt_image_open_file
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    15
    [PT_ERR_IMG_OPEN]           = "open(.png)",
1d188aa94aee pt_png_check, and fclose() pt_image_open_file
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    16
    [PT_ERR_IMG_FORMAT]         = "Unknown image format",
17
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
    
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
    [PT_ERR_PNG_CREATE]         = "png_create()",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
    [PT_ERR_PNG]                = "png_*()",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
   
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
    [PT_ERR_CACHE_STAT]         = "stat(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
    [PT_ERR_CACHE_OPEN_READ]    = "open(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
    [PT_ERR_CACHE_OPEN_TMP]     = "open(.tmp)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
    [PT_ERR_CACHE_SEEK]         = "seek(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
    [PT_ERR_CACHE_READ]         = "read(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
    [PT_ERR_CACHE_WRITE]        = "write(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
    [PT_ERR_CACHE_TRUNC]        = "truncate(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
    [PT_ERR_CACHE_MMAP]         = "mmap(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
    [PT_ERR_CACHE_RENAME_TMP]   = "rename(.tmp, .cache)",
56
d5e3089906da major refactoring of pt_cache, split off all PNG processing into pt_png
Tero Marttila <terom@fixme.fi>
parents: 34
diff changeset
    30
    [PT_ERR_CACHE_VERSION]      = "Incompatible .cache version",
59
80135bdfd343 pt_cache_close
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
    31
    [PT_ERR_CACHE_MUNMAP]       = "munmap(cache->file)",
80135bdfd343 pt_cache_close
Tero Marttila <terom@fixme.fi>
parents: 56
diff changeset
    32
    [PT_ERR_CACHE_CLOSE]        = "close(cache->fd)",
17
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
19
ebcc49de97d0 implement pt_ctx threadpool and pt_image_tile_async
Tero Marttila <terom@fixme.fi>
parents: 18
diff changeset
    34
    [PT_ERR_PTHREAD_CREATE]     = "pthread_create",
ebcc49de97d0 implement pt_ctx threadpool and pt_image_tile_async
Tero Marttila <terom@fixme.fi>
parents: 18
diff changeset
    35
    [PT_ERR_CTX_SHUTDOWN]       = "pt_ctx is shutting down",
ebcc49de97d0 implement pt_ctx threadpool and pt_image_tile_async
Tero Marttila <terom@fixme.fi>
parents: 18
diff changeset
    36
86
d4a62899587f PT_ERR_TILE_DIM and PT_ERR_TILE_ZOOM
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    37
    [PT_ERR_TILE_DIM]           = "Invalid tile dimensions",
17
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
    [PT_ERR_TILE_CLIP]          = "Tile outside of image",
86
d4a62899587f PT_ERR_TILE_DIM and PT_ERR_TILE_ZOOM
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    39
    [PT_ERR_TILE_ZOOM]          = "Invalid zoom level",
17
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
};
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    41
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
const char *pt_strerror (int err)
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
{
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44
    if (err < 0)
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
        err = -err;
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    47
    if (err < PT_SUCCESS || err >= PT_ERR_MAX)
65
e02bede4a6e4 report invalid error codes/names better
Tero Marttila <terom@fixme.fi>
parents: 59
diff changeset
    48
        return "Invalid error code";
e02bede4a6e4 report invalid error codes/names better
Tero Marttila <terom@fixme.fi>
parents: 59
diff changeset
    49
    
e02bede4a6e4 report invalid error codes/names better
Tero Marttila <terom@fixme.fi>
parents: 59
diff changeset
    50
    else if (!error_names[err])
e02bede4a6e4 report invalid error codes/names better
Tero Marttila <terom@fixme.fi>
parents: 59
diff changeset
    51
        return "Missing string for error code";
e02bede4a6e4 report invalid error codes/names better
Tero Marttila <terom@fixme.fi>
parents: 59
diff changeset
    52
17
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    53
    else
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54
        return error_names[err];
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    55
}