---
name: "globus_rsl_value_make_concatenation"
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_constructors"
---

# globus\_rsl\_value\_make\_concatenation(3)

RSL Constructors - RSL Constructors.

Part of [globus\_rsl\_constructors(3)](/globus_rsl_constructors/3.md).

## NAME

globus\_rsl\_constructors - RSL Constructors

 \- RSL Constructors.

## SYNOPSIS

### Functions

globus\_rsl\_t \* **globus\_rsl\_make\_boolean** (int operator, globus\_list\_t \*children)\
 RSL boolean constructor.  globus\_rsl\_t \* **globus\_rsl\_make\_relation** (int 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.

## Detailed Description

RSL Constructors.

## Function Documentation

### globus\_rsl\_t \* globus\_rsl\_make\_boolean (int operator, globus\_list\_t \* children)

RSL boolean constructor. The **globus\_rsl\_make\_boolean()** function creates a boolean composition of the RSL nodes in the list pointed to by *children*. The new RSL node which is returned contains a reference to the list, not a copy.

**Parameters**

*operator* The boolean RSL operator to use to join the RSL parse tree list pointed to by the *children* parameter. This value must be one of GLOBUS\_RSL\_AND, GLOBUS\_RSL\_OR, GLOBUS\_RSL\_MULTIREQ in order to create a valid RSL tree. \
 *children* Pointer to a list of RSL syntax trees to combine with the boolean operation described by the *operator* parameter.

**Returns**

The **globus\_rsl\_make\_boolean()** function returns a new RSL parse tree node that contains a shallow reference to the list of values pointed to by the *children* parameter joined by the operator value in the *operator* parameter. If an error occurs, **globus\_rsl\_make\_boolean()** returns NULL.

### globus\_rsl\_t \* globus\_rsl\_make\_relation (int operator, char \* attributename, globus\_rsl\_value\_t \* value\_sequence)

RSL relation constructor. The **globus\_rsl\_make\_relation()** function creates a relation between the attribute named by the *attributename* parameter and the values pointed to by the *value\_sequence* list. The new RSL relation node which is returned contains a reference to the *attributename* and *value\_sequence* parameters, not a copy.

**Parameters**

*operator* The RSL operator to use to relate the RSL attribute name pointed to by the *attributename* parameter and the values pointed to by the *value\_sequence* parameter. This value must be one of GLOBUS\_RSL\_EQ, GLOBUS\_RSL\_NEQ, GLOBUS\_RSL\_GT, GLOBUS\_RSL\_GTEQ, GLOBUS\_RSL\_LT, or GLOBUS\_RSL\_LTEQ in order to create a valid RSL node. \
 *attributename* Pointer to a string naming the attribute of the new RSL relation. \
 *value\_sequence* Pointer to a sequence of RSL values to use in the new RSL relation.

**Returns**

The **globus\_rsl\_make\_relation()** function returns a new RSL parse tree node that contains a shallow reference to the attribute name pointed to by the *attributename* parameter and the RSL value sequence pointed to by the *value\_sequence* parameter. If an error occurs, **globus\_rsl\_make\_relation()** returns NULL.

### globus\_rsl\_value\_t \* globus\_rsl\_value\_make\_concatenation (globus\_rsl\_value\_t \* left\_value, globus\_rsl\_value\_t \* right\_value)

RSL concatenation constructor. The **globus\_rsl\_value\_make\_concatenation()** function creates a concatenation of the values pointed to by the *left\_value* and *right\_value* parameters. The new node returned by this function contains a reference to these parameters' values, not a copy.

**Parameters**

*left\_value* A pointer to a RSL value to act as the left side of the concatenation. This must be a string literal or variable reference. \
 *right\_value* A pointer to a RSL value to act as the right side of the concatenation. This must be a string literal or variable reference.

**Returns**

The **globus\_rsl\_value\_make\_concatenation()** function returns a new RSL value node that contains a shallow reference to the values pointed to by the *left\_value* and *right\_value* parameters. If an error occurs, **globus\_rsl\_value\_make\_concatenation()** returns NULL.

### globus\_rsl\_value\_t \* globus\_rsl\_value\_make\_literal (char \* string)

RSL literal constructor. The **globus\_rsl\_value\_make\_literal()** function creates a string literal RSL value node containing the value pointed to by the *string* parameter. The new RSL value node which is returned contains a reference to the *string* parameter, not a copy.

**Parameters**

*string* The literal string to be used in the new value.

**Returns**

The **globus\_rsl\_value\_make\_literal()** function returns a new RSL value node that contains a shallow reference to the string pointed to by the *string* parameter. If an error occurs, **globus\_rsl\_value\_make\_literal()** returns NULL.

### globus\_rsl\_value\_t \* globus\_rsl\_value\_make\_sequence (globus\_list\_t \* value\_list)

RSL value sequence constructor. The **globus\_rsl\_value\_make\_sequence()** function creates a value sequence RSL node referring to the values pointed to by the *value\_list* parameter. The new node returned by this function contains a reference to the *value\_list* parameter, not a copy.

**Parameters**

*value\_list* A pointer to a list of globus\_rsl\_value\_t pointers.

**Returns**

The **globus\_rsl\_value\_make\_sequence()** function returns a new RSL value node that contains a shallow reference to the list pointed to by the *value\_list* parameter. If an error occurs, **globus\_rsl\_value\_make\_sequence()** returns NULL.

### globus\_rsl\_value\_t \* globus\_rsl\_value\_make\_variable (globus\_rsl\_value\_t \* sequence)

RSL variable reference constructor. The **globus\_rsl\_value\_make\_variable()** function creates a variable reference RSL node referring to the variable name contained in the value pointed to by *sequence* parameter. The new node returned by this function contains a reference to the *sequence* parameter, not a copy.

**Parameters**

*sequence* A pointer to a RSL value sequnce.

**Returns**

The **globus\_rsl\_value\_make\_variable()** function returns a new RSL value node that contains a shallow reference to the value sequence pointed to by the *sequence* parameter. If an error occurs, **globus\_rsl\_value\_make\_variable()** returns NULL.

## Author

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