---
name: "globus_rsl_param"
section: "3"
platform: "linux"
package: "libglobus-rsl-doc"
version: "11.4-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/globus_rsl_param"
---

# globus\_rsl\_param(3)

RSL Value Accessors - RSL Value Accessors.

## NAME

globus\_rsl\_param - RSL Value Accessors

 \- RSL Value Accessors.

## SYNOPSIS

### Functions

int **globus\_rsl\_value\_concatenation\_set\_left** (globus\_rsl\_value\_t \*concatenation\_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 \*concatenation\_node, globus\_rsl\_value\_t \*new\_right\_node)\
 Set the right-hand value of a concatenation.  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.  globus\_list\_t \* **globus\_rsl\_param\_get\_values** (globus\_rsl\_t \*ast\_node, char \*param)\
 Get the list of values for an RSL attribute.  int **globus\_rsl\_param\_get** (globus\_rsl\_t \*ast\_node, int param\_type, char \*param, char \*\*\*values)\
 Get the value strings for an RSL attribute.

## Detailed Description

RSL Value Accessors.

## Function Documentation

### int globus\_rsl\_param\_get (globus\_rsl\_t \* ast\_node, int param\_type, char \* param, char \*\*\* values)

Get the value strings for an RSL attribute. The **globus\_rsl\_param\_get()** function searches the RSL parse tree pointed to by the *ast\_node* parameter and returns an array of pointers to the strings bound to the attribute named by the *param* parameter.

**Parameters**

*ast\_node* A pointer to an RSL syntax tree that will be searched. This may be a relation or boolean RSL string. \
 *param\_type* A flag indicating what type of values are expected for the RSL attribute named by the *param* parameter. This flag value may be *GLOBUS\_RSL\_PARAM\_SINGLE\_LITERAL*, *GLOBUS\_RSL\_PARAM\_MULTI\_LITERAL*, or *GLOBUS\_RSL\_PARAM\_SEQUENCE*. \
 *param* A string pointing to the name of of the RSL attribute to search for. \
 *values* An output parameter pointing to an array of strings that will be allocated and contain pointers to the RSL value strings if they match the format specified by the *param\_type* flag. The caller is responsible for freeing this array, but not the strings in the array.

**Returns**

Upon success, the **globus\_rsl\_param\_get()** function returns *GLOBUS\_SUCCESS* and modifies the *values* parameter as described above. If an error occurs, **globus\_rsl\_param\_get()** returns a non-zero value.

### globus\_list\_t \* globus\_rsl\_param\_get\_values (globus\_rsl\_t \* ast\_node, char \* param)

Get the list of values for an RSL attribute. The **globus\_rsl\_param\_get\_values()** function searches the RSL parse tree pointed to by the *ast\_node* parameter and returns the value list that is bound to the attribute named by the *param* parameter.

**Parameters**

*ast\_node* A pointer to an RSL syntax tree that will be searched. This may be a relation or boolean RSL string. \
 *param* The name of the attribute to search for in the parse tree pointed to by the *ast\_node* parameter.

**Returns**

Upon success, the **globus\_rsl\_param\_get\_values()** function returns a pointer to the list of values associated with the attribute named by *param* in the RSL parse tree pointed to by *ast\_node*. If an error occurs, **globus\_rsl\_param\_get\_values()** returns NULL.

### int globus\_rsl\_value\_concatenation\_set\_left (globus\_rsl\_value\_t \* concatenation\_node, globus\_rsl\_value\_t \* new\_left\_node)

Set the left-hand value of a concatenation. The **globus\_rsl\_value\_concatenation\_set\_left()** sets the left hand side of a concatenation pointed to by *concatenation\_node* to the value pointed to by *new\_left\_node*. If there was any previous value to the left hand side of the concatenation, it is discarded but not freed.

**Parameters**

*concatenation\_node* A pointer to the RSL value concatenation node to modify. \
 *new\_left\_node* A pointer to the new left hand side of the concatenation.

**Returns**

Upon success, **globus\_rsl\_value\_concatenation\_set\_left()** returns *GLOBUS\_SUCCESS* and modifies the value pointed to by the *concatenation\_node* parameter to use the value pointed to by the *new\_left\_node* parameter as its left hand side value. If an error occurs, **globus\_rsl\_value\_concatenation\_set\_left()** returns -1.

### int globus\_rsl\_value\_concatenation\_set\_right (globus\_rsl\_value\_t \* concatenation\_node, globus\_rsl\_value\_t \* new\_right\_node)

Set the right-hand value of a concatenation. The **globus\_rsl\_value\_concatenation\_set\_right()** sets the right-hand side of a concatenation pointed to by *concatenation\_node* to the value pointed to by *new\_right\_node*. If there was any previous value to the right-hand side of the concatenation, it is discarded but not freed.

**Parameters**

*concatenation\_node* A pointer to the RSL value concatenation node to modify. \
 *new\_right\_node* A pointer to the new right hand side of the concatenation.

**Returns**

Upon success, **globus\_rsl\_value\_concatenation\_set\_right()** returns *GLOBUS\_SUCCESS* and modifies the value pointed to by the *concatenation\_node* parameter to use the value pointed to by the *new\_right\_node* parameter as its right hand side value. If an error occurs, **globus\_rsl\_value\_concatenation\_set\_right()** returns -1.

### 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. The **globus\_rsl\_value\_list\_param\_get()** function copies pointers to literal string values or string pairs associated with the list of globus\_rsl\_value\_t pointers pointed to by the *ast\_node\_list* parameter to the output array pointed to by the *value* parameter. It modifies the value pointed to by the *value\_ctr* parameter to be the number of strings copied into the array.

**Parameters**

*ast\_node\_list* A pointer to a list of globus\_rsl\_value\_t pointers whose values will be copied to the *value* parameter array. \
 *required\_type* A flag indicating whether the list is expected to contain literal strings or string pairs. This value may be one of *GLOBUS\_RSL\_VALUE\_LITERAL* or *GLOBUS\_RSL\_VALUE\_SEQUENCE*. \
 *value* An output parameter pointing to an array of strings. This array must be at least as large as the number of elements in the list pointed to by *ast\_node\_list*. \
 *value\_ctr* An output parameter pointing to an integer that will be incremented for each string copied into the *value* array.

**Returns**

Upon success, the **globus\_rsl\_value\_list\_param\_get()** function returns GLOBUS\_SUCCESS and modifies the values pointed to by the *value* and *value\_ctr* prameters as described above. If an error occurs, **globus\_rsl\_value\_list\_param\_get()** returns a non-zero value.

## Author

Generated automatically by Doxygen for globus\_rsl from the source code.
