Top | ![]() |
![]() |
![]() |
![]() |
void gebr_geoxml_flow_add_flow (GebrGeoXmlFlow *flow
,GebrGeoXmlFlow *flow2
);
void gebr_geoxml_flow_foreach_parameter (GebrGeoXmlFlow *flow
,GebrGeoXmlCallback callback
,gpointer user_data
);
void gebr_geoxml_flow_set_date_last_run (GebrGeoXmlFlow *flow
,const gchar *last_run
);
gchar *
gebr_geoxml_flow_get_date_last_run (GebrGeoXmlFlow *flow
);
void gebr_geoxml_flow_server_set_group (GebrGeoXmlFlow *flow
,const gchar *type
,const gchar *name
);
void gebr_geoxml_flow_server_get_group (GebrGeoXmlFlow *flow
,gchar **type
,gchar **name
);
void gebr_geoxml_flow_server_set_date_last_run (GebrGeoXmlFlow *flow
,const gchar *date
);
Sets the last run date for this server.
flow
and date
should not be passed as NULL.
gchar *
gebr_geoxml_flow_server_get_date_last_run
(GebrGeoXmlFlow *flow
);
Retrieve the last run date for this server.
flow
should not be passed as NULL.
void gebr_geoxml_flow_io_set_input (GebrGeoXmlFlow *flow
,const gchar *input
);
Set the flow
input file path to input
. The input file is
the one used to gather the input sent by the last program of flow
.
flow
and input
should not be passed as NULL.
See gebr_geoxml_flow_server_io_get_input()
.
void gebr_geoxml_flow_io_set_output (GebrGeoXmlFlow *flow
,const gchar *output
);
Set the flow
output file path to output
. The output file is
the one used to gather the output sent by the last program of flow
.
flow
and input
should not be passed as NULL.
See gebr_geoxml_flow_server_io_get_output()
.
void gebr_geoxml_flow_io_set_error (GebrGeoXmlFlow *flow
,const gchar *error
);
Set the flow
error file path to error
. This should be the file
containing the error log, which might include program's stderr
flow
and input
should not be passed as NULL.
See gebr_geoxml_flow_server_io_get_error gebr_geoxml_program_set_stderr()
.
gchar *
gebr_geoxml_flow_io_get_input (GebrGeoXmlFlow *flow
);
Retrieves the input file path of flow
.
If the input file path was not set before, default will be an empty string "".
flow
should not be passed as NULL.
See gebr_geoxml_flow_server_io_set_input()
gchar *
gebr_geoxml_flow_io_get_output (GebrGeoXmlFlow *flow
);
Retrieves the output file path of flow
.
If the output file path was not set before, default will be an empty string "".
flow
should not be passed as NULL.
See gebr_geoxml_flow_server_io_set_output()
.
gchar *
gebr_geoxml_flow_io_get_error (GebrGeoXmlFlow *flow
);
Retrieves the error file path of flow
.
If the error file path was not set before, default will be an empty string "".
flow
should not be passed as NULL.
See gebr_geoxml_flow_server_io_set_error()
.
GebrGeoXmlProgram *
gebr_geoxml_flow_append_program (GebrGeoXmlFlow *flow
);
Creates a new program associated and append to the list of programs Provided for convenience
int gebr_geoxml_flow_get_program (GebrGeoXmlFlow *flow
,GebrGeoXmlSequence **program
,gulong index
);
Writes to program
the index
ieth category that flow
belong.
If an error occurred (either GEBR_GEOXML_RETV_INVALID_INDEX and GEBR_GEOXML_RETV_NULL_PTR)
the content of program
is assigned to NULL.
If flow
is NULL nothing is done.
Returns one of: GEBR_GEOXML_RETV_SUCCESS, GEBR_GEOXML_RETV_INVALID_INDEX, GEBR_GEOXML_RETV_NULL_PTR
See gebr_geoxml_sequence_move gebr_geoxml_sequence_move_up()
, gebr_geoxml_sequence_move_down()
, gebr_geoxml_sequence_remove()
.
glong
gebr_geoxml_flow_get_programs_number (GebrGeoXmlFlow *flow
);
Get the number of programs flow
has.
If flow
is NULL, returns -1.
GebrGeoXmlProgram *
gebr_geoxml_flow_get_first_mpi_program
(GebrGeoXmlFlow *flow
);
GebrGeoXmlCategory * gebr_geoxml_flow_append_category (GebrGeoXmlFlow *flow
,const gchar *name
);
Creates a new category and append it to the list of categories. If the category already exist, returns it.
int gebr_geoxml_flow_get_category (GebrGeoXmlFlow *flow
,GebrGeoXmlSequence **category
,gulong index
);
Writes to category
the index
ieth category that belongs to flow
.
If an error ocurred, the content of category
is assigned to NULL.
Returns one of: GEBR_GEOXML_RETV_SUCCESS, GEBR_GEOXML_RETV_INVALID_INDEX, GEBR_GEOXML_RETV_NULL_PTR
See gebr_geoxml_sequence_move()
, gebr_geoxml_sequence_move_up gebr_geoxml_sequence_move_down()
, gebr_geoxml_sequence_remove()
.
glong
gebr_geoxml_flow_get_categories_number
(GebrGeoXmlFlow *flow
);
Get the number of categories that flow
has.
If flow
is NULL returns -1.
gboolean gebr_geoxml_flow_change_to_revision (GebrGeoXmlFlow *flow
,GebrGeoXmlRevision *revision
);
GebrGeoXmlRevision * gebr_geoxml_flow_append_revision (GebrGeoXmlFlow *flow
,const gchar *comment
);
void gebr_geoxml_flow_set_revision_data (GebrGeoXmlRevision *revision
,const gchar *flow
,const gchar *date
,const gchar *comment
,const gchar *id
);
enum GEBR_GEOXML_RETV gebr_geoxml_flow_get_revision (GebrGeoXmlFlow *flow
,GebrGeoXmlSequence **revision
,gulong index
);
Writes to revision
the index
ieth revision that belongs flow
.
If an error occurred (either GEBR_GEOXML_RETV_INVALID_INDEX and GEBR_GEOXML_RETV_NULL_PTR)
the content of revision
is assigned to NULL.
If flow
is NULL nothing is done.
Returns one of: GEBR_GEOXML_RETV_SUCCESS, GEBR_GEOXML_RETV_INVALID_INDEX, GEBR_GEOXML_RETV_NULL_PTR
See gebr_geoxml_sequence_move gebr_geoxml_sequence_move_up gebr_geoxml_sequence_move_down gebr_geoxml_sequence_remove
void gebr_geoxml_flow_get_revision_data (GebrGeoXmlRevision *revision
,gchar **flow
,gchar **date
,gchar **comment
,gchar **id
);
gulong gebr_geoxml_flow_get_revision_index_by_id (GebrGeoXmlFlow *flow
,gchar *parent_id
);
GebrGeoXmlRevision * gebr_geoxml_flow_get_revision_by_id (GebrGeoXmlFlow *flow
,const gchar *id
);
gboolean gebr_geoxml_flow_get_parent_revision (GebrGeoXmlFlow *flow
,gchar **date
,gchar **comment
,gchar **id
);
glong
gebr_geoxml_flow_get_revisions_number (GebrGeoXmlFlow *flow
);
gboolean gebr_geoxml_flow_validate (GebrGeoXmlFlow *flow
,GebrValidator *validator
,GError **error
);
Determine if a flow can be executed or not. If not, return the correct
type of error in error
and returns FALSE
.
gboolean
gebr_geoxml_flow_has_control_program (GebrGeoXmlFlow *flow
);
If this flow has a program marked as a control, this function returns TRUE
. Otherwise returns FALSE
.
The purpose of this function is to allow only one control for each flow. It is not possible to set a
program to be a control, only if you directly edit the XML file of a flow.
gboolean
gebr_geoxml_flow_insert_iter_dict (GebrGeoXmlFlow *flow
);
GebrGeoXmlProgram *
gebr_geoxml_flow_get_control_program (GebrGeoXmlFlow *flow
);
If this flow has a program marked as a control, this function returns GebrGeoxmlProgram
. Otherwise returns NULL
.
The purpose of this function is to allow only one control for each flow. It is not possible to set a
program to be a control, only if you directly edit the XML file of a flow.
void gebr_geoxml_flow_io_set_output_append (GebrGeoXmlFlow *flow
,gboolean setting
);
gboolean
gebr_geoxml_flow_io_get_output_append (GebrGeoXmlFlow *flow
);
void gebr_geoxml_flow_io_set_error_append (GebrGeoXmlFlow *flow
,gboolean setting
);
gboolean
gebr_geoxml_flow_io_get_error_append (GebrGeoXmlFlow *flow
);
void
gebr_geoxml_flow_update_iter_dict_value
(GebrGeoXmlFlow *flow
);
Updates the `iter' dictionary variable with the start value of the for loop of this flow. If the flow does not have a loop, does nothing and returns silently.
void gebr_geoxml_flow_revalidate (GebrGeoXmlFlow *flow
,GebrValidator *validator
);
Revalidates all flow
's programs and set their statuses accordingly.
flow |
A GebrGeoXmlFlow to be revalidated. |
|
validator |
The GebrValidator that will validate |
gboolean gebr_geoxml_flow_is_parallelizable (GebrGeoXmlFlow *flow
,GebrValidator *validator
);
GList * gebr_geoxml_flow_divide_flows (GebrGeoXmlFlow *flow
,GebrValidator *validator
,gint *distributed_n
,gint distributed_n_len
);
flow |
A GebrGeoXmlFlow to be divided on |
|
validator |
The GebrValidator that will be used to check if |
|
distributed_n |
The gint vector of distributed nsteps of loop |
|
distributed_n_len |
The number of flows to return |
gint * gebr_geoxml_flow_calculate_proportional_n (gint total_n
,gdouble *weights
,gint n_weights
);
gdouble * gebr_geoxml_flow_calulate_weights (gint n_servers
,gdouble *scores
,gdouble acc_scores
);
GList *
gebr_geoxml_flow_get_mpi_flavors (GebrGeoXmlFlow *flow
);
gchar *
gebr_geoxml_flow_io_get_input_real (GebrGeoXmlFlow *flow
);
gchar *
gebr_geoxml_flow_io_get_output_real (GebrGeoXmlFlow *flow
);
gboolean gebr_geoxml_flow_is_single_core (GebrGeoXmlFlow *flow
,GebrValidator *validator
);
gchar * gebr_geoxml_flow_create_dot_code (GebrGeoXmlFlow *flow
,GHashTable *hash
);