]>
git.ipfire.org Git - location/libloc.git/blob - src/stringpool.h
2 libloc - A library to determine the location of someone on the Internet
4 Copyright (C) 2017 IPFire Development Team <info@ipfire.org>
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
17 #ifndef LIBLOC_STRINGPOOL_H
18 #define LIBLOC_STRINGPOOL_H
23 #include <loc/libloc.h>
25 struct loc_stringpool
;
26 int loc_stringpool_new(struct loc_ctx
* ctx
, struct loc_stringpool
** pool
, size_t max_length
);
27 struct loc_stringpool
* loc_stringpool_ref(struct loc_stringpool
* pool
);
28 struct loc_stringpool
* loc_stringpool_unref(struct loc_stringpool
* pool
);
30 const char* loc_stringpool_get(struct loc_stringpool
* pool
, off_t offset
);
31 size_t loc_stringpool_get_size(struct loc_stringpool
* pool
);
33 off_t
loc_stringpool_add(struct loc_stringpool
* pool
, const char* string
);
34 void loc_stringpool_dump(struct loc_stringpool
* pool
);
36 int loc_stringpool_read(struct loc_stringpool
* pool
, FILE* f
, off_t offset
, size_t length
);
37 size_t loc_stringpool_write(struct loc_stringpool
* pool
, FILE* f
);