]>
git.ipfire.org Git - people/ms/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
);
27 int loc_stringpool_open(struct loc_ctx
* ctx
, struct loc_stringpool
** pool
,
28 FILE* f
, size_t length
, off_t offset
);
30 struct loc_stringpool
* loc_stringpool_ref(struct loc_stringpool
* pool
);
31 struct loc_stringpool
* loc_stringpool_unref(struct loc_stringpool
* pool
);
33 const char* loc_stringpool_get(struct loc_stringpool
* pool
, off_t offset
);
34 size_t loc_stringpool_get_size(struct loc_stringpool
* pool
);
36 off_t
loc_stringpool_add(struct loc_stringpool
* pool
, const char* string
);
37 void loc_stringpool_dump(struct loc_stringpool
* pool
);
39 size_t loc_stringpool_write(struct loc_stringpool
* pool
, FILE* f
);