cctools
catalog_query.h File Reference
#include <time.h>
#include "jx.h"

Go to the source code of this file.

Functions

struct catalog_query * catalog_query_create (const char *hosts, struct jx *filter_expr, time_t stoptime)
 Create a catalog query. More...
 
struct jxcatalog_query_read (struct catalog_query *q, time_t stoptime)
 Read the next object from a query. More...
 
void catalog_query_delete (struct catalog_query *q)
 Delete a completed query object. More...
 
int catalog_query_send_update (const char *hosts, const char *text)
 Send update text to the given hosts hosts is a comma delimited list of hosts, each of which can be host or host:port. More...
 
int catalog_query_send_update_conditional (const char *hosts, const char *text)
 Send update text to the given hosts, but fail if the update text cannot be compressed to a suitable size. More...
 

Detailed Description

Query the global catalog server for server descriptions.

Function Documentation

◆ catalog_query_create()

struct catalog_query* catalog_query_create ( const char *  hosts,
struct jx filter_expr,
time_t  stoptime 
)

Create a catalog query.

Connects to a catalog server, issues a query, and waits for the results. The caller may specify a specific catalog host and port. If none is given, then the environment variables CATALOG_HOST and CATALOG_PORT will be consulted. If neither is set, the system will contact chirp.cse.nd.edu on port 9097.

Parameters
hostsA comma delimited list of catalog servers to query, or null for the default server.
filter_exprAn optional expression to filter the results in JX syntax. A null pointer indicates no filter.
stoptimeThe absolute time at which to abort.
Returns
A catalog query object on success, or null on failure.

◆ catalog_query_read()

struct jx* catalog_query_read ( struct catalog_query *  q,
time_t  stoptime 
)

Read the next object from a query.

Returns the next jx expressions from the issued query. The caller may use jx_lookup_string, jx_lookup_integer and related functions to manipulate the object, and then must call jx_delete when done.

Parameters
qA query created by catalog_query_create.
stoptimeThe absolute time at which to abort.
Returns
A jx expression representing the next result, or null if the end of stream has been reached.

◆ catalog_query_delete()

void catalog_query_delete ( struct catalog_query *  q)

Delete a completed query object.

Parameters
qThe query to delete.

◆ catalog_query_send_update()

int catalog_query_send_update ( const char *  hosts,
const char *  text 
)

Send update text to the given hosts hosts is a comma delimited list of hosts, each of which can be host or host:port.

Parameters
hostsA list of hosts to which to send updates
textString to send
Returns
The number of updates successfully sent,

◆ catalog_query_send_update_conditional()

int catalog_query_send_update_conditional ( const char *  hosts,
const char *  text 
)

Send update text to the given hosts, but fail if the update text cannot be compressed to a suitable size.

Parameters
hostsA list of hosts to which to send updates
textString to send
Returns
The number of updates successfully sent,