globus_common  17.10
globus_states.h
Go to the documentation of this file.
1 
7 #if !defined(GLOBUS_STATES_H)
8 #define GLOBUS_STATES_H 1
9 
10 #include "globus_common.h"
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #define globus_state_add_transition(_h, _s, _e, _ns, _cb, _d) \
17 globus_state_add_transition_real(_h, _s, _e, _ns, _cb, #_cb, _d)
18 
19 extern globus_extension_registry_t globus_i_state_diagram_registry;
20 #define GLOBUS_STATE_DIAGRAM_REGISTRY &globus_i_state_diagram_registry
21 
22 typedef struct globus_i_state_handle_s * globus_state_handle_t;
23 
24 typedef
26 (*globus_states_transition_function_t)(
27  int new_state,
28  void * user_arg);
29 
30 typedef
31 void
32 (*globus_states_transition_error_function_t)(
33  int new_state,
34  void * user_arg);
35 
36 typedef
38 (*globus_states_init_function_t)(
39  globus_state_handle_t handle);
40 
41 typedef struct globus_state_extension_handle_s
42 {
43  globus_states_init_function_t init_handler;
44  char * name;
45 } globus_state_extension_handle_t;
46 
47 
48 
49 typedef enum globus_state_dia_flags_e
50 {
51  GLOBUS_STATE_DIA_EDGE_EVENT = 1,
52  GLOBUS_STATE_DIA_EDGE_FUNC = 2,
53  GLOBUS_STATE_DIA_NO_DUPLICATES = 4,
54  GLOBUS_STATE_DIA_NUMBER_LABELS = 8
55 } globus_state_dia_flags_t;
56 
58 globus_states_set_events(
59  globus_state_handle_t handle,
60  int state_count,
61  int event_count,
62  char * reg_name,
63  char ** state_name,
64  char ** event_name);
65 
67 globus_states_init(
68  globus_state_handle_t * out_handle,
69  globus_states_init_function_t init_func);
70 
72 globus_state_add_transition_real(
73  globus_state_handle_t in_handle,
74  int state,
75  int event,
76  int new_state,
77  globus_states_transition_function_t cb,
78  char * edge_name,
79  char * desc);
80 
81 
83 globus_state_handle_event_now(
84  globus_state_handle_t in_handle,
85  int state,
86  int event,
87  void * user_arg);
88 
90 globus_state_queue_event(
91  globus_state_handle_t in_handle,
92  int state,
93  int event,
94  void * user_arg,
95  globus_states_transition_error_function_t error_event);
96 
97 
98 
100 globus_state_destroy(
101  globus_state_handle_t in_handle);
102 
104 globus_state_make_graph(
105  globus_state_handle_t in_handle,
106  const char * filename,
107  const char * txt_filename,
108  int flags,
109  char * user_desc);
110 
111 #ifdef __cplusplus
112 }
113 #endif
114 
115 #endif
Headers common to all of Globus.
uint32_t globus_result_t
Definition: globus_types.h:84