/****************************************************************** 
 *
 * clientsclass.h --
 *
 *     Interface to clients class. Hold all the clients'
 *     characteristics, including the key->keyset & key-order
 *     mappings which allow the generation of a client-ID.
 *
 *     Process incoming Nlv_Field info from parseclass and
 *     find out event number/value, place results in a cache
 *     for Graph and Analysis routines (single ref-counted copy).
 *
 *
 * Created: 9 June 1998
 * $Author: mstoufer $
 * $Date: 2000/12/05 19:52:32 $
 * $Id: clientsclass.h,v 1.1.1.1 2000/12/05 19:52:32 mstoufer Exp $
 *
 ****************************************************************** 
 */
#ifndef NLV_CLIENTS_INCLUDED
#define NLV_CLIENTS_INCLUDED

#include "structs.h"
#include "keysclass.h"
#include "parsedate.h"
#include "ulm.h"

/*========= DATA =====================================================*/

#define T Nlv_cl
typedef struct T *T;

/*========= FUNCTIONS ================================================*/

T           Nlv_clNew( );
void        Nlv_clSetKeyData( T, Nlv_ky data );
Nlv_GData  *Nlv_clProcess( T, Nlv_Fields *f);
Nlv_Client *Nlv_clNewClient( T );
double      Nlv_clGetTime( Nlv_Fields *f );
double      Nlv_clGetEventVal( Nlv_Fields *line, char *valStr, double min, double max );
int         Nlv_clGetNumClients( T );
Nlv_Client *Nlv_clGetClientRecord( T, int idx );
/* access fields of Nlv_Client struct */
char       *Nlv_clGetClientName( Nlv_Client * );
Nlv_KeySet *Nlv_clGetKeySet( Nlv_Client * );
Nlv_Key    *Nlv_clGetKeyPtr( T, Nlv_Fields *fldPtr, int *evnt );

#undef T
#endif
