---
name: "globus_rsl_relation_get_attribute"
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_accessor"
---

# globus\_rsl\_relation\_get\_attribute(3)

RSL Accessor Functions - RSL Accessor Functions.

Part of [globus\_rsl\_accessor(3)](/globus_rsl_accessor/3.md).

## NAME

globus\_rsl\_accessor - RSL Accessor Functions

 \- RSL Accessor Functions.

## SYNOPSIS

### Functions

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.  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.  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\_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.

## Detailed Description

RSL Accessor Functions.

## Function Documentation

### globus\_list\_t \* globus\_rsl\_boolean\_get\_operand\_list (globus\_rsl\_t \* ast\_node)

Get the RSL operand list from a boolean RSL composition. The **globus\_rsl\_boolean\_get\_operand\_list()** function returns the list of RSL syntax tree nodes that is joined by a boolean composition.

**Parameters**

*ast\_node* The RSL syntax tree to inspect.

**Returns**

Upon success, **globus\_rsl\_boolean\_get\_operand\_list()** returns a pointer to a list of RSL syntax tree nodes that are the operand of a boolean composition operation. If an error occurs, **globus\_rsl\_boolean\_get\_operand\_list()** returns NULL.

### 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. The **globus\_rsl\_boolean\_get\_operand\_list\_ref()** function returns a pointer to the list of RSL syntax tree nodes that is joined by a boolean composition. If this list is modified, then the value of boolean syntax tree is modified.

**Parameters**

*boolean\_node* The RSL syntax tree to inspect.

**Returns**

Upon success, **globus\_rsl\_boolean\_get\_operand\_list\_ref()** returns a pointer to the list pointer in the RSL syntax tree data structure. This list can be modified to change the oprands of the boolean operation. If an error occurs, **globus\_rsl\_boolean\_get\_operand\_list\_ref()** returns NULL.

### int globus\_rsl\_boolean\_get\_operator (globus\_rsl\_t \* ast\_node)

Get the RSL operator used in a boolean RSL composition. The **globus\_rsl\_boolean\_get\_operator()** function returns the operator that is used by the boolean RSL composition.

**Parameters**

*ast\_node* The RSL syntax tree to inspect.

**Returns**

Upon success, **globus\_rsl\_boolean\_get\_operator()** returns one of GLOBUS\_RSL\_AND, GLOBUS\_RSL\_OR, GLOBUS\_RSL\_MULTIREQ. If an error occurs, **globus\_rsl\_boolean\_get\_operator()** returns -1.

### char \* globus\_rsl\_relation\_get\_attribute (globus\_rsl\_t \* ast\_node)

Get an RSL relation attribute name. The **globus\_rsl\_relation\_get\_attribute()** function returns a pointer to the name of the attribute in an RSL relation. This return value is a shallow reference to the attribute name.

**Parameters**

*ast\_node* The RSL relation node to inspect.

**Returns**

Upon success, **globus\_rsl\_relation\_get\_attribute()** returns a pointer to the name of the attribute of the relation. If an error occurs, **globus\_rsl\_relation\_get\_attribute()** returns NULL.

### int globus\_rsl\_relation\_get\_operator (globus\_rsl\_t \* ast\_node)

Get an RSL relation operator. The **globus\_rsl\_relation\_get\_operator()** function returns the operation type represented by the RSL relation node pointed to by the *ast\_node* parameter.

**Parameters**

*ast\_node* The RSL relation node to inspect.

**Returns**

Upon success, **globus\_rsl\_relation\_get\_operator()** returns one of GLOBUS\_RSL\_EQ, GLOBUS\_RSL\_NEQ, GLOBUS\_RSL\_GT, GLOBUS\_RSL\_GTEQ, GLOBUS\_RSL\_LT, or GLOBUS\_RSL\_LTEQ. If an error occurs, **globus\_rsl\_relation\_get\_operator()** returns -1.

### globus\_rsl\_value\_t \* globus\_rsl\_relation\_get\_single\_value (globus\_rsl\_t \* ast\_node)

Get the single value of an RSL relation. The **globus\_rsl\_relation\_get\_single\_value()** function returns the value of an RSL relation node pointed to by the *ast\_node* parameter if the value is a sequence of one value.

**Parameters**

*ast\_node* The RSL relation node to inspect.

**Returns**

Upon success, **globus\_rsl\_relation\_get\_single\_value()** returns the value pointer at the head of the RSL relation pointed to by the *ast\_node* parameter. If the value sequence has more than one value or the *ast\_node* points to an RSL syntax tree that is not a relation, **globus\_rsl\_relation\_get\_value\_sequence()** returns NULL.

### globus\_rsl\_value\_t \* globus\_rsl\_relation\_get\_value\_sequence (globus\_rsl\_t \* ast\_node)

Get the value of an RSL relation. The **globus\_rsl\_relation\_get\_value\_sequence()** function returns the value of an RSL relation node pointed to by the *ast\_node* parameter.

**Parameters**

*ast\_node* The RSL relation node to inspect.

**Returns**

Upon success, **globus\_rsl\_relation\_get\_value\_sequence()** returns the value sequence pointer in the RSL relation pointed to by the *ast\_node* parameter. If an error occurs, **globus\_rsl\_relation\_get\_value\_sequence()** returns NULL.

### globus\_rsl\_value\_t \* globus\_rsl\_value\_concatenation\_get\_left (globus\_rsl\_value\_t \* concatenation\_node)

Get the left side of a concatenation value. The **globus\_rsl\_value\_concatenation\_get\_left()** function returns the left side of an RSL value concatenation pointed to by the *concatenation\_node* parameter.

**Parameters**

*concatenation\_node* The RSL concatenation node to inspect.

**Returns**

Upon success, **globus\_rsl\_value\_concatenation\_get\_left()** returns a pointer to the left value of the concatenation values pointed to by the *concatenation\_node* parameter. If an error occurs, **globus\_rsl\_value\_concatenation\_get\_left()** returns NULL.

### globus\_rsl\_value\_t \* globus\_rsl\_value\_concatenation\_get\_right (globus\_rsl\_value\_t \* concatenation\_node)

Get the right side of a concatenation value. The **globus\_rsl\_value\_concatenation\_get\_right()** function returns the right side of an RSL value concatenation pointed to by the *concatenation\_node* parameter.

**Parameters**

*concatenation\_node* The RSL concatenation node to inspect.

**Returns**

Upon success, **globus\_rsl\_value\_concatenation\_get\_right()** returns a pointer to the right value of the concatenation values pointed to by the *concatenation\_node* parameter. If an error occurs, **globus\_rsl\_value\_concatenation\_get\_right()** returns NULL.

### char \* globus\_rsl\_value\_literal\_get\_string (globus\_rsl\_value\_t \* literal\_node)

Get the string value of an RSL literal. The **globus\_rsl\_value\_literal\_get\_string()** function returns the string value of an RSL literal node pointed to by the *literal\_node* parameter.

**Parameters**

*literal\_node* The RSL literal node to inspect.

**Returns**

Upon success, **globus\_rsl\_value\_literal\_get\_string()** returns a pointer to the string value of the literal pointed to by the *literal\_node* parameter. If the value is not a literal, **globus\_rsl\_value\_literal\_get\_string()** returns NULL.

### 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. The **globus\_rsl\_value\_sequence\_get\_list\_ref()** function returns a reference to the list of values in a value sequence. Any changes to the elements of this list will affect the *sequence\_node* parameter.

**Parameters**

*sequence\_node* The RSL sequence node to inspect.

**Returns**

Upon success, **globus\_rsl\_value\_sequence\_get\_list\_ref()** returns a pointer to the list of the globus\_rsl\_value\_t pointer values contained in the *sequence\_node* parameter. If an error occurs, **globus\_rsl\_value\_sequence\_get\_list\_ref()** returns NULL.

### 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. The **globus\_rsl\_value\_sequence\_get\_value\_list()** function returns the list of globus\_rsl\_value\_t pointer values associated with the RSL value sequence pointed to by the *sequence\_node* parameter.

**Parameters**

*sequence\_node* The RSL sequence node to inspect.

**Returns**

Upon success, **globus\_rsl\_value\_sequence\_get\_value\_list()** returns a pointer to the list of values pointed to by the *sequence\_node* parameter. If the value is not a sequence, **globus\_rsl\_value\_literal\_get\_string()** returns NULL.

### char \* globus\_rsl\_value\_variable\_get\_default (globus\_rsl\_value\_t \* variable\_node)

Get the default value of an RSL variable reference. The **globus\_rsl\_value\_variable\_get\_default()** function returns a pointer to the default value of the RSL variable pointed to by the *variable\_node* parameter to use if the variable's name is not bound in the current evaluation context.

**Parameters**

*variable\_node* The RSL variable node to inspect.

**Returns**

Upon success, **globus\_rsl\_value\_variable\_get\_default()** returns a pointer to the string containing the default value of the variable referenced by the *variable\_node* parameter. If the node is not a variable reference or no default value exists in the RSL node, **globus\_rsl\_value\_variable\_get\_default()** returns NULL.

### char \* globus\_rsl\_value\_variable\_get\_name (globus\_rsl\_value\_t \* variable\_node)

Get the name of an RSL variable reference. The **globus\_rsl\_value\_variable\_get\_name()** function returns a pointer to the name of the RSL variable name pointed to by the *variable\_node* parameter.

**Parameters**

*variable\_node* The RSL variable node to inspect.

**Returns**

Upon success, **globus\_rsl\_value\_variable\_get\_name()** returns a pointer to the string containing the name of the variable referenced by the *variable\_node* parameter. If the node is not a variable reference, **globus\_rsl\_value\_variable\_get\_sequence()** returns NULL.

### 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. The **globus\_rsl\_value\_variable\_get\_sequence()** function returns the sequence value associated with the RSL variable reference pointed to by the *variable\_node* parameter.

**Parameters**

*variable\_node* The RSL variable node to inspect.

**Returns**

Upon success, **globus\_rsl\_value\_variable\_get\_sequence()** returns a pointer to the rsl value sequence pointed to by the *variable\_node* parameter. If the value is not a variable reference, **globus\_rsl\_value\_variable\_get\_sequence()** returns NULL.

### 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. The **globus\_rsl\_value\_variable\_get\_size()** function returns the number of nodes in the RSL variable reference node pointed to by the *variable\_node* parameter.

**Parameters**

*variable\_node* The RSL variable node to inspect.

**Returns**

Upon success, **globus\_rsl\_value\_variable\_get\_size()** returns the list of values within a RSL variable reference, or -1 if the node pointed to by *variable\_node* is not a variable reference. If the return value is 1, then the variable has no default value included in the reference.

## Author

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