Lowered some logging to debug
[pazpar2-moved-to-github.git] / src / host.h
1 /* This file is part of Pazpar2.
2    Copyright (C) 2006-2012 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 *url;      // logical host/database?args ..
30     char *tproxy;   // tproxy address (no Z39.50 UI)
31     char *proxy;    // logical proxy address
32     char *ipport;   // tproxy or proxy resolved
33     struct connection *connections; // All connections to this
34     struct host *next;
35     YAZ_MUTEX mutex;
36     YAZ_COND cond_ready;
37 };
38
39 database_hosts_t database_hosts_create(void);
40 void database_hosts_destroy(database_hosts_t *);
41
42 struct host *find_host(database_hosts_t hosts, const char *hostport,
43                        const char *proxy, int port, iochan_man_t iochan_man);
44
45 int host_getaddrinfo(struct host *host, iochan_man_t iochan_man);
46
47 #endif
48
49 /*
50  * Local variables:
51  * c-basic-offset: 4
52  * c-file-style: "Stroustrup"
53  * indent-tabs-mode: nil
54  * End:
55  * vim: shiftwidth=4 tabstop=8 expandtab
56  */
57