pazpar2  1.14.1
Data Structures | Functions | Variables
connection.c File Reference

Z39.50 connection (low-level client) More...

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <assert.h>
#include <yaz/log.h>
#include <yaz/comstack.h>
#include <yaz/tcpip.h>
#include "connection.h"
#include "session.h"
#include "client.h"
#include "settings.h"

Go to the source code of this file.

Data Structures

struct  connection
 Represents a physical, reusable connection to a remote Z39.50 host. More...
 

Functions

static int connection_use (int delta)
 
int connections_count (void)
 
static int connection_connect (struct connection *con, iochan_man_t iochan_man)
 
ZOOM_connection connection_get_link (struct connection *co)
 
void connection_mark_dead (struct connection *co)
 
static void connection_destroy (struct connection *co)
 
static struct connectionconnection_create (struct client *cl, const char *url, const char *zproxy, int operation_timeout, int session_timeout, iochan_man_t iochan_man)
 
static void non_block_events (struct connection *co)
 
static void iochan_update (struct connection *co)
 
void connection_continue (struct connection *co)
 
static void connection_handler (IOCHAN iochan, int event)
 
void connection_release2 (struct connection *co)
 
int client_prep_connection (struct client *cl, int operation_timeout, int session_timeout, iochan_man_t iochan_man, const struct timeval *abstime)
 

Variables

static YAZ_MUTEX g_mutex = 0
 
static int no_connections = 0
 
static int total_no_connections = 0
 

Detailed Description

Z39.50 connection (low-level client)

Definition in file connection.c.

Function Documentation

◆ client_prep_connection()

int client_prep_connection ( struct client cl,
int  operation_timeout,
int  session_timeout,
iochan_man_t  iochan_man,
const struct timeval *  abstime 
)

◆ connection_connect()

static int connection_connect ( struct connection con,
iochan_man_t  iochan_man 
)
static

◆ connection_continue()

void connection_continue ( struct connection co)

◆ connection_create()

static struct connection* connection_create ( struct client cl,
const char *  url,
const char *  zproxy,
int  operation_timeout,
int  session_timeout,
iochan_man_t  iochan_man 
)
static

◆ connection_destroy()

static void connection_destroy ( struct connection co)
static

◆ connection_get_link()

ZOOM_connection connection_get_link ( struct connection co)

Definition at line 106 of file connection.c.

References connection::link.

Referenced by client_record_response(), client_search_response(), and client_start_search().

◆ connection_handler()

static void connection_handler ( IOCHAN  iochan,
int  event 
)
static

◆ connection_mark_dead()

void connection_mark_dead ( struct connection co)

Definition at line 111 of file connection.c.

References connection::iochan, and iochan_settimeout.

Referenced by client_mark_dead().

◆ connection_release2()

void connection_release2 ( struct connection co)

Definition at line 323 of file connection.c.

References connection::client.

Referenced by client_stop().

◆ connection_use()

static int connection_use ( int  delta)
static

Definition at line 55 of file connection.c.

References g_mutex, no_connections, and total_no_connections.

Referenced by connection_create(), connection_destroy(), and connections_count().

◆ connections_count()

int connections_count ( void  )

Definition at line 73 of file connection.c.

References connection_use().

◆ iochan_update()

static void iochan_update ( struct connection co)
static

◆ non_block_events()

static void non_block_events ( struct connection co)
static

Variable Documentation

◆ g_mutex

YAZ_MUTEX g_mutex = 0
static

Definition at line 51 of file connection.c.

Referenced by connection_use().

◆ no_connections

int no_connections = 0
static

Definition at line 52 of file connection.c.

Referenced by connection_use().

◆ total_no_connections

int total_no_connections = 0
static

Definition at line 53 of file connection.c.

Referenced by connection_use().