cvs: php4 /ext/hyperwave hg_comm.c hg_comm.h hw.c php_hyperwave.h

From: Date: Fri, 27 Oct 2000 09:29:39 +0000
Subject: cvs: php4 /ext/hyperwave hg_comm.c hg_comm.h hw.c php_hyperwave.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-2285@lists.php.net to get a copy of this message
steinm Fri Oct 27 02:29:39 2000 EDT Modified files: /php4/ext/hyperwave hg_comm.c hg_comm.h hw.c php_hyperwave.h Log: - added four functions to do fulltext query

Index: php4/ext/hyperwave/hg_comm.c diff -u php4/ext/hyperwave/hg_comm.c:1.31 php4/ext/hyperwave/hg_comm.c:1.32 --- php4/ext/hyperwave/hg_comm.c:1.31 Thu Jun 15 16:45:04 2000 +++ php4/ext/hyperwave/hg_comm.c Fri Oct 27 02:29:39 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: hg_comm.c,v 1.31 2000/06/15 23:45:04 andi Exp $ */ +/* $Id: hg_comm.c,v 1.32 2000/10/27 09:29:39 steinm Exp $ */ /* #define HW_DEBUG */ @@ -4227,6 +4227,421 @@ if ( send_hg_msg(sockfd, &msg, length) == -1 ) { efree(msg.buf); efree(childIDs); + return(-1); + } + + efree(msg.buf); + } + efree(childIDs); + + if(NULL == (objptr = (char **) emalloc(*count * sizeof(hw_objrec *)))) { + /* if emalloc fails, get at least all remaining messages from server */ + for(i=0; i<*count; i++) { + retmsg = recv_hg_msg(sockfd); + efree(retmsg->buf); + efree(retmsg); + } + *childrec = NULL; + lowerror = LE_MALLOC; + return(-1); + } else { + *childrec = objptr; + + for(i=0; i<*count; i++) { + retmsg = recv_hg_msg(sockfd); + if ( retmsg != NULL ) { + if(0 == (int) *(retmsg->buf)) { + *objptr = estrdup(retmsg->buf+sizeof(int)); + objptr++; + efree(retmsg->buf); + efree(retmsg); + } else { + *objptr = NULL; + objptr++; + efree(retmsg->buf); + efree(retmsg); + } + } + } + } +#endif + return(0); +} + +int send_getobjbyftquery(int sockfd, char *query, int maxhits, hw_objectID **childIDs, float **weights, int *count) +{ + hg_msg msg, *retmsg; + int length, error; + char *tmp; + int *ptr, i, *ptr1; + float *ptr2; + + length = HEADER_LENGTH + strlen(query) + 1; + + build_msg_header(&msg, length, msgid++, GETOBJBYFTQUERY_MESSAGE); + + if ( (msg.buf = (char *)emalloc(length-HEADER_LENGTH)) == NULL ) { + lowerror = LE_MALLOC; + return(-1); + } + + tmp = build_msg_str(msg.buf, query); + + if ( send_hg_msg(sockfd, &msg, length) == -1 ) { + efree(msg.buf); + return(-1); + } + efree(msg.buf); + retmsg = recv_hg_msg(sockfd); + if ( retmsg == NULL ) + return(-1); + + ptr = (int *) retmsg->buf; + if(ptr == NULL) { + if(retmsg) efree(retmsg); + return -1; + } + if(*ptr++ == 0) { + *count = (*ptr < maxhits) ? *ptr : maxhits; + ptr++; + if(NULL != (*childIDs = emalloc(*count * sizeof(hw_objectID)))) { + ptr1 = *childIDs; + if(NULL != (*weights = emalloc(*count * sizeof(float)))) { + ptr2 = *weights; + for(i=0; i<*count; i++) { + ptr1[i] = *ptr++; + ptr2[i] = (float) *ptr++; + } + efree(retmsg->buf); + efree(retmsg); + } else { + efree(*childIDs); + efree(retmsg->buf); + efree(retmsg); + lowerror = LE_MALLOC; + return(-1); + } + } else { + efree(retmsg->buf); + efree(retmsg); + lowerror = LE_MALLOC; + return(-1); + } + } else { + error = *((int *) retmsg->buf); + efree(retmsg->buf); + efree(retmsg); + return error; + } + return(0); +} + +int send_getobjbyftqueryobj(int sockfd, char *query, int maxhits, char ***childrec, float **weights, int *count) +{ + hg_msg msg, *retmsg; + int length, i, error; + char *tmp; + int *childIDs = NULL; + char **objptr; + int *ptr, *ptr1; + float *ptr2; + + length = HEADER_LENGTH + strlen(query) + 1; + + build_msg_header(&msg, length, msgid++, GETOBJBYFTQUERY_MESSAGE); + + if ( (msg.buf = (char *)emalloc(length-HEADER_LENGTH)) == NULL ) { +/* perror("send_command"); */ + lowerror = LE_MALLOC; + return(-1); + } + + tmp = build_msg_str(msg.buf, query); + + if ( send_hg_msg(sockfd, &msg, length) == -1 ) { + efree(msg.buf); + return(-2); + } + + efree(msg.buf); + retmsg = recv_hg_msg(sockfd); + if ( retmsg == NULL ) + return(-3); + + ptr = (int *) retmsg->buf; + if(ptr == NULL) { + if(retmsg) efree(retmsg); + return -4; + } + if(*ptr++ == 0) { + *count = (*ptr < maxhits) ? *ptr : maxhits; + ptr++; + if(NULL != (childIDs = emalloc(*count * sizeof(hw_objectID)))) { + ptr1 = childIDs; + if(NULL != (*weights = emalloc(*count * sizeof(float)))) { + ptr2 = *weights; + for(i=0; i<*count; i++) { + ptr1[i] = *ptr++; + ptr2[i] = (float) *ptr++; + } + efree(retmsg->buf); + efree(retmsg); + } else { + efree(childIDs); + efree(retmsg->buf); + efree(retmsg); + lowerror = LE_MALLOC; + return(-5); + } + } else { + efree(retmsg->buf); + efree(retmsg); + lowerror = LE_MALLOC; + return(-5); + } + } else { + error = *((int *) retmsg->buf); + efree(retmsg->buf); + efree(retmsg); + return error; + } + + /* Now get for each child collection the object record */ +#ifdef hw_less_server_stress + if(0 != send_objectbyidquery(sockfd, childIDs, count, NULL, childrec)) { + efree(childIDs); + efree(*weights); + return -2; + } + efree(childIDs); +#else + for(i=0; i<*count; i++) { + length = HEADER_LENGTH + sizeof(hw_objectID); + build_msg_header(&msg, length, childIDs[i], GETOBJECT_MESSAGE); + + if ( (msg.buf = (char *)emalloc(length-HEADER_LENGTH)) == NULL ) { + efree(childIDs); + efree(*weights); + lowerror = LE_MALLOC; + return(-6); + } + + tmp = build_msg_int(msg.buf, childIDs[i]); + + if ( send_hg_msg(sockfd, &msg, length) == -1 ) { + efree(msg.buf); + efree(childIDs); + efree(*weights); + return(-7); + } + + efree(msg.buf); + } + efree(childIDs); + + if(NULL == (objptr = (char **) emalloc(*count * sizeof(hw_objrec *)))) { + /* if emalloc fails, get at least all remaining messages from server */ + for(i=0; i<*count; i++) { + retmsg = recv_hg_msg(sockfd); + efree(retmsg->buf); + efree(retmsg); + } + *childrec = NULL; + lowerror = LE_MALLOC; + return(-8); + } else { + *childrec = objptr; + + for(i=0; i<*count; i++) { + retmsg = recv_hg_msg(sockfd); + if ( retmsg != NULL ) { + if(0 == (int) *(retmsg->buf)) { + *objptr = estrdup(retmsg->buf+sizeof(int)); + objptr++; + efree(retmsg->buf); + efree(retmsg); + } else { + *objptr = NULL; + objptr++; + efree(retmsg->buf); + efree(retmsg); + } + } + } + } +#endif + return(0); +} + +int send_getobjbyftquerycoll(int sockfd, hw_objectID collID, char *query, int maxhits, hw_objectID **childIDs, float **weights, int *count) +{ + hg_msg msg, *retmsg; + int length, error; + char *tmp; + int *ptr, i, *ptr1; + float *ptr2; + + length = HEADER_LENGTH + strlen(query) + 1 + sizeof(int) + sizeof(collID); + + build_msg_header(&msg, length, msgid++, GETOBJBYFTQUERYCOLL_MESSAGE); + + if ( (msg.buf = (char *)emalloc(length-HEADER_LENGTH)) == NULL ) { + lowerror = LE_MALLOC; + return(-1); + } + + tmp = build_msg_int(msg.buf, 1); + tmp = build_msg_int(tmp, collID); + tmp = build_msg_str(tmp, query); + + if ( send_hg_msg(sockfd, &msg, length) == -1 ) { + efree(msg.buf); + return(-1); + } + + efree(msg.buf); + retmsg = recv_hg_msg(sockfd); + if ( retmsg == NULL ) + return(-1); + + ptr = (int *) retmsg->buf; + if(ptr == NULL) { + if(retmsg) efree(retmsg); + return -1; + } + if(*ptr++ == 0) { + *count = (*ptr < maxhits) ? *ptr : maxhits; + ptr++; + if(NULL != (*childIDs = emalloc(*count * sizeof(hw_objectID)))) { + ptr1 = *childIDs; + if(NULL != (*weights = emalloc(*count * sizeof(float)))) { + ptr2 = *weights; + for(i=0; i<*count; i++) { + ptr1[i] = *ptr++; + ptr2[i] = (float) *ptr++; + } + } else { + efree(*childIDs); + efree(retmsg->buf); + efree(retmsg); + lowerror = LE_MALLOC; + return(-1); + } + efree(retmsg->buf); + efree(retmsg); + } else { + efree(retmsg->buf); + efree(retmsg); + lowerror = LE_MALLOC; + return(-1); + } + } else { + error = *((int *) retmsg->buf); + efree(retmsg->buf); + efree(retmsg); + return error; + } + return(0); +} + +int send_getobjbyftquerycollobj(int sockfd, hw_objectID collID, char *query, int maxhits, char ***childrec, float **weights, int *count) +{ + hg_msg msg, *retmsg; + int length, i, error; + char *tmp; + hw_objectID *childIDs = NULL; + char **objptr; + int *ptr, *ptr1; + float *ptr2; + + length = HEADER_LENGTH + strlen(query) + 1 + sizeof(int) + sizeof(hw_objectID); + + build_msg_header(&msg, length, msgid++, GETOBJBYFTQUERYCOLL_MESSAGE); + + if ( (msg.buf = (char *)emalloc(length-HEADER_LENGTH)) == NULL ) { + lowerror = LE_MALLOC; + return(-1); + } + + tmp = build_msg_int(msg.buf, 1); + tmp = build_msg_int(tmp, collID); + tmp = build_msg_str(tmp, query); + + if ( send_hg_msg(sockfd, &msg, length) == -1 ) { + efree(msg.buf); + return(-1); + } + + efree(msg.buf); + retmsg = recv_hg_msg(sockfd); + if ( retmsg == NULL ) + return -1; + + ptr = (int *) retmsg->buf; + if(ptr == NULL) { + if(retmsg) efree(retmsg); + return -1; + } + if(*ptr++ == 0) { + *count = (*ptr < maxhits) ? *ptr : maxhits; + ptr++; + if(NULL != (childIDs = emalloc(*count * sizeof(hw_objectID)))) { + ptr1 = childIDs; + if(NULL != (*weights = emalloc(*count * sizeof(float)))) { + ptr2 = *weights; + for(i=0; i<*count; i++) { + ptr1[i] = *ptr++; + ptr2[i] = (float) *ptr++; + } + efree(retmsg->buf); + efree(retmsg); + } else { + efree(childIDs); + efree(retmsg->buf); + efree(retmsg); + lowerror = LE_MALLOC; + return(-1); + } + } else { + efree(retmsg->buf); + efree(retmsg); + lowerror = LE_MALLOC; + return(-1); + } + } else { + error = *((int *) retmsg->buf); + efree(retmsg->buf); + efree(retmsg); + return error; + } + + /* Now get for each child collection the object record */ +#ifdef hw_less_server_stress + if(0 != send_objectbyidquery(sockfd, childIDs, count, NULL, childrec)) { + if(childIDs) efree(childIDs); + if(*weights) efree(weights); + return -2; + } + if(childIDs) efree(childIDs); +#else + for(i=0; i<*count; i++) { + length = HEADER_LENGTH + sizeof(hw_objectID); + build_msg_header(&msg, length, childIDs[i], GETOBJECT_MESSAGE); + + if ( (msg.buf = (char *)emalloc(length-HEADER_LENGTH)) == NULL ) { +/* perror("send_command"); */ + efree(childIDs); + efree(*weights); + lowerror = LE_MALLOC; + return(-1); + } + + tmp = build_msg_int(msg.buf, childIDs[i]); + + if ( send_hg_msg(sockfd, &msg, length) == -1 ) { + efree(msg.buf); + efree(childIDs); + efree(*weights); return(-1); } Index: php4/ext/hyperwave/hg_comm.h diff -u php4/ext/hyperwave/hg_comm.h:1.9 php4/ext/hyperwave/hg_comm.h:1.10 --- php4/ext/hyperwave/hg_comm.h:1.9 Sun Jul 23 18:39:46 2000 +++ php4/ext/hyperwave/hg_comm.h Fri Oct 27 02:29:39 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: hg_comm.h,v 1.9 2000/07/24 01:39:46 david Exp $ */ +/* $Id: hg_comm.h,v 1.10 2000/10/27 09:29:39 steinm Exp $ */ #ifndef HG_COMM_H #define HG_COMM_H @@ -68,6 +68,8 @@ #define UNLOCK_MESSAGE 30 #define INCOLLECTIONS_MESSAGE 31 #define INSERTOBJECT_MESSAGE 32 +#define GETOBJBYFTQUERY_MESSAGE 34 +#define GETOBJBYFTQUERYCOLL_MESSAGE 35 #define PIPEDOCUMENT_MESSAGE 36 #define DELETEOBJECT_MESSAGE 37 #define PUTDOCUMENT_MESSAGE 38 @@ -144,6 +146,7 @@ typedef int hw_objectID; typedef char hw_objrec; +typedef float hw_float; #ifdef newlist void fnDeleteAnchor(void *ptr1); @@ -204,6 +207,10 @@ extern int send_getobjbyqueryobj(int sockfd, char *query, int maxhits, char ***childrec, int *count); extern int send_getobjbyquerycoll(int sockfd, hw_objectID collID, char *query, int maxhits, hw_objectID **childIDs, int *count); extern int send_getobjbyquerycollobj(int sockfd, hw_objectID collID, char *query, int maxhits, char ***childrec, int *count); +extern int send_getobjbyftquery(int sockfd, char *query, int maxhits, hw_objectID **childIDs, float **weights, int *count); +extern int send_getobjbyftqueryobj(int sockfd, char *query, int maxhits, char ***childrec, float **weights, int *count); +extern int send_getobjbyftquerycoll(int sockfd, hw_objectID collID, char *query, int maxhits, hw_objectID **childIDs, float **weight, int *count); +extern int send_getobjbyftquerycollobj(int sockfd, hw_objectID collID, char *query, int maxhits, char ***childrec, float **weight, int *count); extern int send_identify(int sockfd, char *name, char *passwd, char **userdata); extern int send_getparents(int sockfd, hw_objectID objectID, hw_objectID **childIDs, int *count); extern int send_children(int sockfd, hw_objectID objectID, hw_objectID **childIDs, int *count); Index: php4/ext/hyperwave/hw.c diff -u php4/ext/hyperwave/hw.c:1.65 php4/ext/hyperwave/hw.c:1.66 --- php4/ext/hyperwave/hw.c:1.65 Wed Oct 25 10:43:51 2000 +++ php4/ext/hyperwave/hw.c Fri Oct 27 02:29:39 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: hw.c,v 1.65 2000/10/25 17:43:51 andrei Exp $ */ +/* $Id: hw.c,v 1.66 2000/10/27 09:29:39 steinm Exp $ */ #include <stdlib.h> #include <errno.h> @@ -82,6 +82,10 @@ PHP_FE(hw_getobjectbyqueryobj, NULL) PHP_FE(hw_getobjectbyquerycoll, NULL) PHP_FE(hw_getobjectbyquerycollobj, NULL) + PHP_FE(hw_getobjectbyftquery, NULL) + PHP_FE(hw_getobjectbyftqueryobj, NULL) + PHP_FE(hw_getobjectbyftquerycoll, NULL) + PHP_FE(hw_getobjectbyftquerycollobj, NULL) PHP_FE(hw_getchilddoccoll, NULL) PHP_FE(hw_getchilddoccollobj, NULL) PHP_FE(hw_getanchors, NULL) @@ -2457,7 +2461,7 @@ free(doc); RETURN_FALSE; } - memcpy(doc->data, arg2->value.str.val, arg3->value.lval); + memcpy(doc->data, arg2->value.str.val, arg3->value.lval); ptr = doc->data; ptr[arg3->value.lval] = '\0'; doc->attributes = strdup(arg1->value.str.val); @@ -3140,6 +3144,176 @@ set_swap(ptr->swap_on); if (0 != (ptr->lasterror = send_getobjbyquerycollobj(ptr->socket, id, query, maxhits, &childObjRecs, &count))) { + php_error(E_WARNING, "send_command (getobjectbyquerycollobj) returned %d\n", ptr->lasterror); + RETURN_FALSE; + } + + /* create return value and free all memory */ + if( 0 > make_return_objrec(&return_value, childObjRecs, count)) + RETURN_FALSE; +} +/* }}} */ + +/* {{{ proto array hw_getobjectbyftquery(int link, string query, int maxhits) + Search for query as fulltext and return maxhits objids */ +PHP_FUNCTION(hw_getobjectbyftquery) { + pval **arg1, **arg2, **arg3; + int link, type, maxhits; + char *query; + int count, i; + int *childIDs = NULL; + float *weights; + hw_connection *ptr; + + if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { + WRONG_PARAM_COUNT; + } + convert_to_long_ex(arg1); + convert_to_string_ex(arg2); + convert_to_long_ex(arg3); + link=(*arg1)->value.lval; + query=(*arg2)->value.str.val; + maxhits=(*arg3)->value.lval; + if (maxhits < 0) maxhits=0x7FFFFFFF; + ptr = zend_list_find(link,&type); + if(!ptr || (type!=HwSG(le_socketp) && type!=HwSG(le_psocketp))) { + php_error(E_WARNING,"Unable to find file identifier %d",link); + RETURN_FALSE; + } + + set_swap(ptr->swap_on); + if (0 != (ptr->lasterror = send_getobjbyftquery(ptr->socket, query, maxhits, &childIDs, &weights, &count))) { + php_error(E_WARNING, "send_command (getobjectbyftquery) returned %d\n", ptr->lasterror); + RETURN_FALSE; + } + + if (array_init(return_value) == FAILURE) { + efree(childIDs); + RETURN_FALSE; + } + + for(i=0; i<count; i++) + add_index_long(return_value, i, childIDs[i]); + efree(childIDs); +} +/* }}} */ + +/* {{{ proto array hw_getobjectbyftqueryobj(int link, string query, int maxhits) + Search for query as fulltext and return maxhits object records */ +PHP_FUNCTION(hw_getobjectbyftqueryobj) { + pval **arg1, **arg2, **arg3; + int link, type, maxhits; + char *query; + int count; + char **childObjRecs = NULL; + float *weights; + hw_connection *ptr; + + if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { + WRONG_PARAM_COUNT; + } + convert_to_long_ex(arg1); + convert_to_string_ex(arg2); + convert_to_long_ex(arg3); + link=(*arg1)->value.lval; + query=(*arg2)->value.str.val; + maxhits=(*arg3)->value.lval; + if (maxhits < 0) maxhits=0x7FFFFFFF; + ptr = zend_list_find(link,&type); + if(!ptr || (type!=HwSG(le_socketp) && type!=HwSG(le_psocketp))) { + php_error(E_WARNING,"Unable to find file identifier %d",link); + RETURN_FALSE; + } + + set_swap(ptr->swap_on); + if (0 != (ptr->lasterror = send_getobjbyftqueryobj(ptr->socket, query, maxhits, &childObjRecs, &weights, &count))) { + php_error(E_WARNING, "send_command (getobjectbyftqueryobj) returned %d\n", ptr->lasterror); + RETURN_FALSE; + } + + /* create return value and free all memory */ + if( 0 > make_return_objrec(&return_value, childObjRecs, count)) + RETURN_FALSE; +} +/* }}} */ + +/* {{{ proto array hw_getobjectbyftquerycoll(int link, int collid, string query, int maxhits) + Search for fulltext query in collection and return maxhits objids */ +PHP_FUNCTION(hw_getobjectbyftquerycoll) { + pval **arg1, **arg2, **arg3, **arg4; + int link, id, type, maxhits; + char *query; + int count, i; + hw_connection *ptr; + int *childIDs = NULL; + float *weights; + + if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { + WRONG_PARAM_COUNT; + } + convert_to_long_ex(arg1); + convert_to_long_ex(arg2); + convert_to_string_ex(arg3); + convert_to_long_ex(arg4); + link=(*arg1)->value.lval; + id=(*arg2)->value.lval; + query=(*arg3)->value.str.val; + maxhits=(*arg4)->value.lval; + if (maxhits < 0) maxhits=0x7FFFFFFF; + ptr = zend_list_find(link,&type); + if(!ptr || (type!=HwSG(le_socketp) && type!=HwSG(le_psocketp))) { + php_error(E_WARNING,"Unable to find file identifier %d",id); + RETURN_FALSE; + } + + set_swap(ptr->swap_on); + if (0 != (ptr->lasterror = send_getobjbyftquerycoll(ptr->socket, id, query, maxhits, &childIDs, &weights, &count))) { + php_error(E_WARNING, "send_command (getobjectbyquerycoll) returned %d\n", ptr->lasterror); + RETURN_FALSE; + } + + if (array_init(return_value) == FAILURE) { + efree(childIDs); + RETURN_FALSE; + } + + for(i=0; i<count; i++) + add_index_long(return_value, i, childIDs[i]); + efree(childIDs); +} +/* }}} */ + +/* {{{ proto array hw_getobjectbyftquerycollobj(int link, int collid, string query, int maxhits) + Search for fulltext query in collection and return maxhits object records */ +PHP_FUNCTION(hw_getobjectbyftquerycollobj) { + pval **arg1, **arg2, **arg3, **arg4; + int link, id, type, maxhits; + char *query; + int count; + hw_connection *ptr; + char **childObjRecs = NULL; + float *weights; + + if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { + WRONG_PARAM_COUNT; + } + convert_to_long_ex(arg1); + convert_to_long_ex(arg2); + convert_to_string_ex(arg3); + convert_to_long_ex(arg4); + link=(*arg1)->value.lval; + id=(*arg2)->value.lval; + query=(*arg3)->value.str.val; + maxhits=(*arg4)->value.lval; + if (maxhits < 0) maxhits=0x7FFFFFFF; + ptr = zend_list_find(link,&type); + if(!ptr || (type!=HwSG(le_socketp) && type!=HwSG(le_psocketp))) { + php_error(E_WARNING,"Unable to find file identifier %d",id); + RETURN_FALSE; + } + + set_swap(ptr->swap_on); + if (0 != (ptr->lasterror = send_getobjbyftquerycollobj(ptr->socket, id, query, maxhits, &childObjRecs, &weights, &count))) { php_error(E_WARNING, "send_command (getobjectbyquerycollobj) returned %d\n", ptr->lasterror); RETURN_FALSE; } Index: php4/ext/hyperwave/php_hyperwave.h diff -u php4/ext/hyperwave/php_hyperwave.h:1.9 php4/ext/hyperwave/php_hyperwave.h:1.10 --- php4/ext/hyperwave/php_hyperwave.h:1.9 Sun Jul 23 18:39:47 2000 +++ php4/ext/hyperwave/php_hyperwave.h Fri Oct 27 02:29:39 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_hyperwave.h,v 1.9 2000/07/24 01:39:47 david Exp $ */ +/* $Id: php_hyperwave.h,v 1.10 2000/10/27 09:29:39 steinm Exp $ */ #ifndef PHP_HYPERWAVE_H #define PHP_HYPERWAVE_H @@ -115,6 +115,10 @@ PHP_FUNCTION(hw_getobjectbyqueryobj); PHP_FUNCTION(hw_getobjectbyquerycoll); PHP_FUNCTION(hw_getobjectbyquerycollobj); +PHP_FUNCTION(hw_getobjectbyftquery); +PHP_FUNCTION(hw_getobjectbyftqueryobj); +PHP_FUNCTION(hw_getobjectbyftquerycoll); +PHP_FUNCTION(hw_getobjectbyftquerycollobj); PHP_FUNCTION(hw_getchilddoccoll); PHP_FUNCTION(hw_getchilddoccollobj); PHP_FUNCTION(hw_getanchors);
« previous php.cvs (#2285) next »