X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/blobdiff_plain/85330553eb619f783e0480dfc2bc467a9b4afd7b..refs/heads/ip-billing-dev:/server/query.h diff --git a/server/query.h b/server/query.h index ee5c05af..d193c78a 100644 --- a/server/query.h +++ b/server/query.h @@ -10,20 +10,12 @@ /* Query Types */ enum query_type {RETRIEVE, UPDATE, APPEND, DELETE, SPECIAL}; -/* Tables */ -enum tables {NO_TABLE, USERS_TABLE, KRBMAP_TABLE, MACHINE_TABLE, - HOSTALIAS_TABLE, SUBNET_TABLE, CLUSTER_TABLE, MCMAP_TABLE, - SVC_TABLE, LIST_TABLE, IMEMBERS_TABLE, SERVERS_TABLE, - SERVERHOSTS_TABLE, FILESYS_TABLE, FSGROUP_TABLE, NFSPHYS_TABLE, - QUOTA_TABLE, ZEPHYR_TABLE, HOSTACCESS_TABLE, STRINGS_TABLE, - SERVICES_TABLE, PRINTCAP_TABLE, PALLADIUM_TABLE, CAPACLS_TABLE, - ALIAS_TABLE, NUMVALUES_TABLE, TBLSTATS_TABLE, INCREMENTAL_TABLE}; - /* Query Definition Structure */ struct query { char *name; /* query name */ char *shortname; /* abbreviated query name (must be 4 chars) */ + int version; /* query version */ enum query_type type; /* query type */ char *rvar; /* range variable */ enum tables rtable; /* range table */ @@ -32,6 +24,7 @@ struct query int vcnt; /* variable count */ char *qual; /* format string for "where" clause */ int argc; /* number of args for qualifier */ + char *sort; /* fields to sort on */ struct validate *validate; /* validation support */ int acl; /* hint as to query ACL for this query */ int everybody; /* is the default user on this ACL? */ @@ -58,9 +51,8 @@ struct validate }; /* Validated Object Types */ -enum vo_type {V_NAME, V_ID, V_TYPE, V_TYPEDATA, - V_SORT, V_RENAME, V_CHAR, V_LOCK, V_WILD, V_UPWILD, - V_RLOCK, V_LEN}; +enum vo_type {V_NAME, V_ID, V_TYPE, V_TYPEDATA, V_RENAME, V_CHAR, + V_LEN, V_NUM}; /* Validated Object Definition */ struct valobj @@ -73,16 +65,6 @@ struct valobj int error; }; - -/* prototypes from cache.dc */ -void flush_cache(void); -int name_to_id(char *name, enum tables type, int *id); -int id_to_name(int id, enum tables type, char **name); -int cache_entry(char *name, enum tables type, int id); -void flush_name(char *name, enum tables type); -void cache_commit(void); -void cache_abort(void); - /* prototypes from increment.dc */ void incremental_before(enum tables table, char *qualx, char **argv); void incremental_clear_before(void); @@ -92,10 +74,12 @@ void incremental_clear_after(void); /* prototypes from qrtn.dc */ int check_query_access(struct query *q, char *argv[], client *cl); int set_next_object_id(char *objectx, enum tables table, int limit); +int name_to_id(char *name, enum tables type, int *id); +int id_to_name(int id, enum tables type, char **name); /* prototypes from qsubs.c */ -void list_queries(int (*action)(int, char *[], void *), +void list_queries(client *cl, int (*action)(int, char *[], void *), void *actarg); void help_query(struct query *q, int (*action)(int, char *[], void *), void *actarg); -struct query *get_query_by_name(char *name); +struct query *get_query_by_name(char *name, int version);