3434extern "C" {
3535#endif
3636
37+ /**
38+ @PARAM graph: the graph
39+ @PARAM vertex: a vertex in the graph
40+ @PARAM vertex_result: the vertex_results to copy
41+ @PARAM color: next vertices color
42+ @PARAM iloop: the count of the number of times the vertex has been called
43+ Create a fireable structure
44+ **/
3745struct fireable * create_fireable (struct graph * graph , struct vertex * vertex , struct vertex_result * args , enum STATES color , int iloop );
46+
47+ /**
48+ @PARAM fireable: the fireable to destroy
49+ Frees the fireable struct
50+ **/
3851int destroy_fireable (struct fireable * fireable );
3952
4053/**
@@ -57,9 +70,10 @@ struct graph *graph_init(int max_state_changes,
5770 int max_loop ,
5871 unsigned int lvl_verbose ,
5972 enum CONTEXT context ,
60- enum MEM_OPTION mem_option );
73+ enum MEM_OPTION mem_option ,
74+ enum REQUEST_FLAG request_flag );
6175#define MAX_LOOPS 100
62- #define GRAPH_INIT () graph_init(-1, START_STOP, MAX_LOOPS, VERTICES | EDGES | FUNCTIONS | GLOBALS, SINGLE, CONTINUE)
76+ #define GRAPH_INIT () graph_init(-1, START_STOP, MAX_LOOPS, VERTICES | EDGES | FUNCTIONS | GLOBALS, SINGLE, CONTINUE, IGNORE_FAIL_REQUEST )
6377
6478/**
6579@PARAM graph: the graph
@@ -73,7 +87,7 @@ NOTE: NULL glbl will mean no global variables.
7387 f cannot be NULL.
7488**/
7589struct vertex * create_vertex (struct graph * graph ,
76- void (* f )(struct graph * , struct vertex_result * , void * , void * ),
90+ void (* f )(int , struct graph * , struct vertex_result * , void * , void * ),
7791 int id ,
7892 void * glbl );
7993#define CREATE_VERTEX (graph , f , id ) create_vertex(graph, f, id, NULL, PROTECT_B_VARS)
@@ -91,7 +105,7 @@ NOTE: NULL glbl will mean no global variables. f cannot be NULL.
91105**/
92106struct edge * create_edge (struct vertex * a ,
93107 struct vertex * b ,
94- int (* f )(void * , void * , const void * const , const void * const ),
108+ int (* f )(int , void * , void * , const void * const , const void * const ),
95109 void * glbl );
96110#define CREATE_EDGE (a , b , f ) create_edge(a, b, f, NULL)
97111
@@ -106,7 +120,7 @@ If edge_a_to_b or edge_b_to_a is NULL it will not.
106120**/
107121int create_bi_edge (struct vertex * a ,
108122 struct vertex * b ,
109- int (* f )(void * , void * , const void * const , const void * const ),
123+ int (* f )(int , void * , void * , const void * const , const void * const ),
110124 void * glbl ,
111125 struct edge * * edge_a_to_b ,
112126 struct edge * * edge_b_to_a );
@@ -174,7 +188,7 @@ NOTE: NULL f, or glbl will mean no change.
174188Modifies the vertices function
175189**/
176190int modify_vertex (struct vertex * vertex ,
177- void (* f )(struct graph * , struct vertex_result * , void * , void * ),
191+ void (* f )(int , struct graph * , struct vertex_result * , void * , void * ),
178192 void * glbl );
179193#define MODIFY_VERTEX (vertex , f ) modify_vertex(vertex, f, NULL)
180194#define MODIFY_VERTEX_GLOBALS (vertex , glbl ) modify_vertex(vertex, NULL, glbl)
@@ -201,7 +215,7 @@ NOTE: NULL f, or glbl will mean no change.
201215**/
202216int modify_edge (struct vertex * a ,
203217 struct vertex * b ,
204- int (* f )(void * , void * , const void * const , const void * const ),
218+ int (* f )(int , void * , void * , const void * const , const void * const ),
205219 void * glbl );
206220
207221#define MODIFY_EDGE (a , b , f ) modify_edge(a, b, f, NULL)
@@ -222,7 +236,7 @@ NOTE: NULL f, or glbl will mean no change.
222236**/
223237int modify_bi_edge (struct vertex * a ,
224238 struct vertex * b ,
225- int (* f )(void * , void * , const void * const , const void * const ),
239+ int (* f )(int , void * , void * , const void * const , const void * const ),
226240 void * glbl );
227241#define MODIFY_BI_EDGE (a , b , f ) modify_bi_edge(a, b, f, NULL)
228242#define MODIFY_BI_EDGE_GLOBALS (a , b , glbl ) modify_bi_edge(a, b, NULL, glbl)
0 commit comments