Loading...
Searching...
No Matches
globus_states.h
Go to the documentation of this file.
/*
* Copyright 1999-2006 University of Chicago
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#if !defined(GLOBUS_STATES_H)
#define GLOBUS_STATES_H 1
#include "globus_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#define globus_state_add_transition(_h, _s, _e, _ns, _cb, _d) \
globus_state_add_transition_real(_h, _s, _e, _ns, _cb, #_cb, _d)
extern globus_extension_registry_t globus_i_state_diagram_registry;
#define GLOBUS_STATE_DIAGRAM_REGISTRY &globus_i_state_diagram_registry
typedef struct globus_i_state_handle_s * globus_state_handle_t;
typedef
globus_result_t
(*globus_states_transition_function_t)(
int new_state,
void * user_arg);
typedef
void
(*globus_states_transition_error_function_t)(
int new_state,
void * user_arg);
typedef
globus_result_t
(*globus_states_init_function_t)(
globus_state_handle_t handle);
typedef struct globus_state_extension_handle_s
{
globus_states_init_function_t init_handler;
char * name;
} globus_state_extension_handle_t;
typedef enum globus_state_dia_flags_e
{
GLOBUS_STATE_DIA_EDGE_EVENT = 1,
GLOBUS_STATE_DIA_EDGE_FUNC = 2,
GLOBUS_STATE_DIA_NO_DUPLICATES = 4,
GLOBUS_STATE_DIA_NUMBER_LABELS = 8
} globus_state_dia_flags_t;
globus_result_t
globus_states_set_events(
globus_state_handle_t handle,
int state_count,
int event_count,
char * reg_name,
char ** state_name,
char ** event_name);
globus_result_t
globus_states_init(
globus_state_handle_t * out_handle,
globus_states_init_function_t init_func);
globus_result_t
globus_state_add_transition_real(
globus_state_handle_t in_handle,
int state,
int event,
int new_state,
globus_states_transition_function_t cb,
char * edge_name,
char * desc);
globus_result_t
globus_state_handle_event_now(
globus_state_handle_t in_handle,
int state,
int event,
void * user_arg);
globus_result_t
globus_state_queue_event(
globus_state_handle_t in_handle,
int state,
int event,
void * user_arg,
globus_states_transition_error_function_t error_event);
globus_result_t
globus_state_destroy(
globus_state_handle_t in_handle);
globus_result_t
globus_state_make_graph(
globus_state_handle_t in_handle,
const char * filename,
const char * txt_filename,
int flags,
char * user_desc);
#ifdef __cplusplus
}
#endif
#endif
globus_common.h
Headers common to all of Globus.
globus_result_t
uint32_t globus_result_t
Definition globus_types.h:99