#ifndef QueryCallbacks_H
#define QueryCallbacks_H
-typedef struct HashVector HashVector;
+#include <BindingTable.h>
+
+typedef struct Query Query; // forward
enum NextState {
/**
* A struct Query_callbacks record defines the callbacks for a
* specific Query type.
*/
-struct QueryCallbacks {
+typedef struct QueryCallbacks {
/**
* \brief Callback function to reclaim the Query memory for a
* given Query.
* thereafter reclaim their local state memory.
*/
void (*reclaim)(Query *this);
+
/**
* \brief Callback function to update the Binding table with a
* succession of alternative bindings.
* it cannot setup any (more) Binding.
*/
int (*next)(Query *this,BindingTable *bt,enum NextState state);
+
/**
* \brief This callback function adds its binding names to the
* hashvector.
*/
void (*variables)(Query *this,HashVector *hv);
-};
+} QueryCallbacks;
#endif