Happy new year
[pazpar2-moved-to-github.git] / src / host.h
1 /* This file is part of Pazpar2.
2    Copyright (C) Index Data
3
4 Pazpar2 is free software; you can redistribute it and/or modify it under
5 the terms of the GNU General Public License as published by the Free
6 Software Foundation; either version 2, or (at your option) any later
7 version.
8
9 Pazpar2 is distributed in the hope that it will be useful, but WITHOUT ANY
10 WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
18 */
19
20 #ifndef HOST_H
21 #define HOST_H
22
23 #include <yaz/mutex.h>
24
25 typedef struct database_hosts *database_hosts_t;
26
27 /** \brief Represents a host (irrespective of databases) */
28 struct host {
29     char *tproxy;   // tproxy address (no Z39.50 UI)
30     char *proxy;    // logical proxy address
31     char *ipport;   // tproxy or proxy resolved
32     struct connection *connections; // All connections to this
33     struct host *next;
34     YAZ_MUTEX mutex;
35     YAZ_COND cond_ready;
36 };
37
38 database_hosts_t database_hosts_create(void);
39 void database_hosts_destroy(database_hosts_t *);
40
41 struct host *find_host(database_hosts_t hosts, const char *hostport,
42                        const char *proxy, int port, iochan_man_t iochan_man);
43
44 int host_getaddrinfo(struct host *host, iochan_man_t iochan_man);
45
46 #endif
47
48 /*
49  * Local variables:
50  * c-basic-offset: 4
51  * c-file-style: "Stroustrup"
52  * indent-tabs-mode: nil
53  * End:
54  * vim: shiftwidth=4 tabstop=8 expandtab
55  */
56