globus_rsl.h(3)
globus_rsl.h π
okay bestie, welcome to the Library Functions Manual page for globus_rsl.h β yes it's the Globus RSL Parsing header, and yes it's lowkey a whole vibe. RSL stands for Resource Specification Language btw, iykyk. let's get into it π¦
β¨ NAME β¨
globus_rsl.h β Globus RSL Parsing. that's it, that's the name, she's simple and she's iconic π
β¨ SYNOPSIS β¨
#include 'globus_module.h'
#include 'globus_list.h'
#include 'globus_symboltable.h'
#include 'globus_hashtable.h'
π Functions π
int globus_rsl_is_relation (globus_rsl_t *ast)β RSL relation test. is this thing a relation? asking for a friend.int globus_rsl_is_boolean (globus_rsl_t *ast)β RSL boolean test. boolean check, no cap.int globus_rsl_is_relation_eq (globus_rsl_t *ast)β RSL equality operation test. is it giving==?int globus_rsl_is_relation_lessthan (globus_rsl_t *ast)β RSL less than operation test. is it giving<?int globus_rsl_is_relation_attribute_equal (globus_rsl_t *ast, char *attribute)β RSL attribute name test. does this attribute name match? πint globus_rsl_is_boolean_and (globus_rsl_t *ast)β RSL boolean and test.andenergy.int globus_rsl_is_boolean_or (globus_rsl_t *ast)β RSL boolean or test.orenergy.int globus_rsl_is_boolean_multi (globus_rsl_t *ast)β RSL boolean multi test. multi boolean, she contains multitudes.int globus_rsl_value_is_literal (globus_rsl_value_t *ast)β RSL literal string test.int globus_rsl_value_is_sequence (globus_rsl_value_t *ast)β RSL value sequence test.int globus_rsl_value_is_variable (globus_rsl_value_t *ast)β RSL value variable test.int globus_rsl_value_is_concatenation (globus_rsl_value_t *ast)β RSL value concatenation test.globus_rsl_t * globus_rsl_make_boolean (int my_operator, globus_list_t *children)β RSL boolean constructor. build urself a boolean bestie β¨globus_rsl_t * globus_rsl_make_relation (int my_operator, char *attributename, globus_rsl_value_t *value_sequence)β RSL relation constructor.globus_rsl_value_t * globus_rsl_value_make_literal (char *string)β RSL literal constructor.globus_rsl_value_t * globus_rsl_value_make_sequence (globus_list_t *value_list)β RSL value sequence constructor.globus_rsl_value_t * globus_rsl_value_make_variable (globus_rsl_value_t *sequence)β RSL variable reference constructor.globus_rsl_value_t * globus_rsl_value_make_concatenation (globus_rsl_value_t *left_value, globus_rsl_value_t *right_value)β RSL concatenation constructor.globus_rsl_t * globus_rsl_copy_recursive (globus_rsl_t *globus_rsl_ptr)β Create a deep copy of an RSL syntax tree. deep copy = the whole entire tree, not just the vibes.globus_rsl_value_t * globus_rsl_value_copy_recursive (globus_rsl_value_t *globus_rsl_value_ptr)β Create a deep copy of an RSL value.int globus_rsl_boolean_get_operator (globus_rsl_t *ast_node)β Get the RSL operator used in a boolean RSL composition.globus_list_t * globus_rsl_boolean_get_operand_list (globus_rsl_t *ast_node)β Get the RSL operand list from a boolean RSL composition.globus_list_t ** globus_rsl_boolean_get_operand_list_ref (globus_rsl_t *boolean_node)β Get a reference to the RSL operand list from a boolean RSL composition. a reference, ok, so she's pointing at the real thing.char * globus_rsl_relation_get_attribute (globus_rsl_t *ast_node)β Get an RSL relation attribute name.int globus_rsl_relation_get_operator (globus_rsl_t *ast_node)β Get an RSL relation operator.globus_rsl_value_t * globus_rsl_relation_get_value_sequence (globus_rsl_t *ast_node)β Get the value of an RSL relation.globus_rsl_value_t * globus_rsl_relation_get_single_value (globus_rsl_t *ast_node)β Get the single value of an RSL relation.char * globus_rsl_value_literal_get_string (globus_rsl_value_t *literal_node)β Get the string value of an RSL literal.globus_list_t * globus_rsl_value_sequence_get_value_list (globus_rsl_value_t *sequence_node)β Get the value list from an RSL value sequence.globus_rsl_value_t * globus_rsl_value_variable_get_sequence (globus_rsl_value_t *variable_node)β Get the value sequence from an RSL variable reference.char * globus_rsl_value_variable_get_name (globus_rsl_value_t *variable_node)β Get the name of an RSL variable reference.char * globus_rsl_value_variable_get_default (globus_rsl_value_t *variable_node)β Get the default value of an RSL variable reference.globus_rsl_value_t * globus_rsl_value_concatenation_get_left (globus_rsl_value_t *concatenation_node)β Get the left side of a concatenation value.globus_rsl_value_t * globus_rsl_value_concatenation_get_right (globus_rsl_value_t *concatenation_node)β Get the right side of a concatenation value.globus_list_t ** globus_rsl_value_sequence_get_list_ref (globus_rsl_value_t *sequence_node)β Get a reference to the list of values in a sequence.int globus_rsl_value_concatenation_set_left (globus_rsl_value_t *concatenate_node, globus_rsl_value_t *new_left_node)β Set the left-hand value of a concatenation.int globus_rsl_value_concatenation_set_right (globus_rsl_value_t *concatenate_node, globus_rsl_value_t *new_right_node)β Set the right-hand value of a concatenation.int globus_rsl_value_eval (globus_rsl_value_t *ast_node, globus_symboltable_t *symbol_table, char **string_value, int rsl_substitute_flag)β Evaluate RSL substitions in an RSL value node.int globus_rsl_eval (globus_rsl_t *ast_node, globus_symboltable_t *symbol_table)β Evaluate an RSL syntax tree.int globus_rsl_value_free (globus_rsl_value_t *val)β Free an RSL value node.int globus_rsl_free (globus_rsl_t *ast_node)β Free an RSL syntax tree node.int globus_rsl_value_free_recursive (globus_rsl_value_t *globus_rsl_value_ptr)β Free an RSL value and all its child nodes. yes, ALL of them.int globus_rsl_free_recursive (globus_rsl_t *ast_node)β Free an RSL syntax tree and all its child nodes.int globus_rsl_value_print_recursive (globus_rsl_value_t *globus_rsl_value_ptr)β Print the value of aglobus_rsl_value_tto standard output.int globus_rsl_print_recursive (globus_rsl_t *ast_node)β Print the value of an RSL syntax tree to standard output.int globus_rsl_value_variable_get_size (globus_rsl_value_t *variable_node)β Get the size of the value list within an RSL variable reference node.globus_list_t * globus_list_copy_reverse (globus_list_t *orig)β Create a reverse-order copy of a list. backwards but make it fashion πint globus_rsl_value_list_literal_replace (globus_list_t *value_list, char *string_value)β Replace the first value in a value list with a literal.int globus_rsl_value_list_param_get (globus_list_t *ast_node_list, int required_type, char ***value, int *value_ctr)β Get the values of an RSL value list.int globus_rsl_param_get (globus_rsl_t *ast_node, int required_type, char *param, char ***values)β Get the value strings for an RSL attribute.globus_list_t * globus_rsl_param_get_values (globus_rsl_t *ast_node, char *param)β Get the list of values for an RSL attribute.globus_rsl_t * globus_rsl_parse (char *rsl_spec)β Parse an RSL string.char * globus_rsl_unparse (globus_rsl_t *rsl_spec)β Convert an RSL parse tree to a string.char * globus_rsl_value_unparse (globus_rsl_value_t *rsl_value)β Convert an RSL value pointer to a string.
π Detailed Description π
Globus RSL Parsing. that's the whole description bestie, she's mysterious, she's giving main character energy π
πΈ Function Documentation πΈ
globus_rsl_t * globus_rsl_parse (char * buf)
Parse an RSL string. the globus_rsl_parse() function parses the string pointed to by the buf parameter into an RSL syntax tree.
β οΈ heads up bestie: the caller is responsible for freeing that tree by calling globus_rsl_free_recursive(). don't just walk away from her, that's rude and also a memory leak π
Parameters
bufβ ANULL-terminated string that contains an RSL relation or boolean composition.
Returns
Upon success, the globus_rsl_parse() function returns the parse tree generated by processing its input. If an error occurs, globus_rsl_parse() returns NULL. not me getting NULL back and pretending I'm fine π
π Author π
Generated automatically by Doxygen for globus_rsl from the source code. doxygen really said "I'll write it myself" and honestly? ate. β¨
and that's the page, bestie!! this was globus_rsl Version 11.4, straight from the globus_rsl library, and you just read the whole entire thing like the academic weapon you are πππ¦ go free your syntax trees (recursively!!) and slay the day, mwah π
π¦ where this page comes from
- epel 10: globus-rsl-doc 11.4-1.el10_0 Β· Apache-2.0
- fedora 43: globus-rsl-doc 11.4-4.fc43 Β· Apache-2.0
- fedora 44: globus-rsl-doc 11.4-5.fc44 Β· Apache-2.0
- ubuntu resolute: libglobus-rsl-doc 11.4-2build2 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms