Esempio n. 1
0
int query_first_result(struct query *q, uint8_t **tal_data, 
		size_t *n, int *raw, int *id) {
	int result;

	query_prepare(q);
	result = query_next(q, tal_data, n, raw, id);
	query_finalize(q);

	return result;
}
Esempio n. 2
0
int query_foreach_result(struct query *q, 
		int (*fn)(uint8_t *data, size_t n, int raw, int id, int i, void *user),
		void *user) {
	uint8_t *data;
	size_t n;
	int raw, id, i, status;

	query_prepare(q);

	i = 0;
	while(query_next(q, &data, &n, &raw, &id) == 0) {
		status = (*fn)(data, n, raw, id, i++, user);
		talloc_free(data);
		if(status != 0)
			break;
	}
	query_finalize(q);

	return i;
}
Esempio n. 3
0
xc_result_t
xCOM_QueryNext (
   xc_handle_t queryHandle,
   xc_handle_t *importHandlePtr
) {

   query_t *queryPtr;
   xc_result_t result;

   TRACE3 (("called with queryHandle=%u, importHandlePtr=%p", queryHandle, importHandlePtr));
   pthread_mutex_lock (&lock);

   queryPtr = (query_t *) handle_dir_get (queryHandles, queryHandle);
   if (queryPtr != NULL) {
      result = query_next (queryPtr, importHandlePtr);
   }
   else {
      result = XC_ERR_INVAL;
   }

   pthread_mutex_unlock (&lock);
   TRACE3 (("exiting with result=%d", result));
   return result;
}