pazpar2  1.11.3
host.h
Go to the documentation of this file.
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 
26 
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  int error; // resolving error
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 
YAZ_COND cond_ready
Definition: host.h:36
int host_getaddrinfo(struct host *host, iochan_man_t iochan_man)
Definition: getaddrinfo.c:193
struct host * find_host(database_hosts_t hosts, const char *hostport, const char *proxy, int port, iochan_man_t iochan_man)
Definition: host.c:79
struct connection * connections
Definition: host.h:32
int error
Definition: host.h:33
void database_hosts_destroy(database_hosts_t *)
Definition: host.c:141
char * ipport
Definition: host.h:31
Represents a physical, reusable connection to a remote Z39.50 host.
Definition: connection.c:89
database_hosts_t database_hosts_create(void)
Definition: host.c:132
Represents a host (irrespective of databases)
Definition: host.h:28
struct database_hosts * database_hosts_t
Definition: host.h:25
char * proxy
Definition: host.h:30
char * tproxy
Definition: host.h:29
YAZ_MUTEX mutex
Definition: host.h:35
struct host * next
Definition: host.h:34