.TH "globus_common" 3 "Tue Jul 5 2022" "Version 18.13" "globus_common" \" -*- nroff -*-
.ad l
.nh
.SH NAME
globus_common \- Globus Common API
.PP
 \- Common Data Structures and Functions\&.  

.SH SYNOPSIS
.br
.PP
.SS "Modules"

.in +1c
.ti -1c
.RI "\fBGlobus Callback\fP"
.br
.RI "Globus Callback Function Interface\&. "
.ti -1c
.RI "\fBGlobus Error API\fP"
.br
.RI "Globus Error API\&. "
.ti -1c
.RI "\fBFIFO Queue\fP"
.br
.RI "FIFO Queue Implementation\&. "
.ti -1c
.RI "\fBHandle Table for Reference Counting Data\fP"
.br
.RI "Handle Table for Reference Counting Data\&. "
.ti -1c
.RI "\fBHash Table\fP"
.br
.RI "Hash Table\&. "
.ti -1c
.RI "\fBLinked List\fP"
.br
.RI "Linked List\&. "
.ti -1c
.RI "\fBMemory Pool\fP"
.br
.RI "Memory Pool\&. "
.ti -1c
.RI "\fBModule Activation Management\fP"
.br
.RI "Module Activation Management\&. "
.ti -1c
.RI "\fBPriority Queue\fP"
.br
.RI "Priority Queue\&. "
.ti -1c
.RI "\fBThreading\fP"
.br
.RI "Portable Thread Abstraction\&. "
.ti -1c
.RI "\fBThread Pooling\fP"
.br
.RI "Thread Pooling\&. "
.ti -1c
.RI "\fBURL String Parser\fP"
.br
.RI "URL String Parser\&. "
.ti -1c
.RI "\fBGlobus UUID Generator\fP"
.br
.RI "UUID Generator\&. "
.in -1c
.SS "Macros"

.in +1c
.ti -1c
.RI "#define \fBGLOBUS_COMMON_MODULE\fP   (&globus_i_common_module)"
.br
.RI "Globus Common Module Descriptor\&. "
.ti -1c
.RI "#define \fBGLOBUS_TILDE_EXPAND\fP"
.br
.RI "Expand ~\&. "
.ti -1c
.RI "#define \fBGLOBUS_TILDE_USER_EXPAND\fP"
.br
.RI "Expand ~user\&. "
.ti -1c
.RI "#define \fBGLOBUS_TRUE\fP   1"
.br
.RI "True value for globus_bool_t\&. "
.ti -1c
.RI "#define \fBGLOBUS_FALSE\fP   0"
.br
.RI "False value for globus_bool_t\&. "
.ti -1c
.RI "#define \fBGLOBUS_SUCCESS\fP   0"
.br
.RI "Generic success result
.PP
Most Globus API functions return this value to indicate success, or some error constant or globus_result_t to indicate an error\&. "
.ti -1c
.RI "#define \fBGLOBUS_FAILURE\fP   \-1"
.br
.RI "Generic failure result
.PP
Some Globus API functions without good error handling return this value to indicate some undetermined error occurred\&. "
.in -1c
.SS "Typedefs"

.in +1c
.ti -1c
.RI "typedef size_t \fBglobus_size_t\fP"
.br
.RI "Standard size of memory object
.PP
The globus_size_t is the size of a memory object\&. It is identical to size_t in all cases and doesn't need to be used ever\&. "
.ti -1c
.RI "typedef socklen_t \fBglobus_socklen_t\fP"
.br
.RI "Size of a socket length parameter\&. "
.ti -1c
.RI "typedef unsigned char \fBglobus_byte_t\fP"
.br
.RI "Unsigned byte datatype
.PP
This is used for byte-addressable arrays of arbitrary data which is not subject to sign extension\&. "
.ti -1c
.RI "typedef int \fBglobus_bool_t\fP"
.br
.RI "Boolean type\&. "
.ti -1c
.RI "typedef uint32_t \fBglobus_result_t\fP"
.br
.in -1c
.SS "Functions"

.in +1c
.ti -1c
.RI "\fBglobus_result_t\fP \fBglobus_eval_path\fP (const char *pathstring, char **bufp)"
.br
.ti -1c
.RI "int \fBglobus_tilde_expand\fP (unsigned long options, \fBglobus_bool_t\fP url_form, char *inpath, char **outpath)"
.br
.RI "Expand ~ and/or ~user in path strings\&. "
.in -1c
.SH "Detailed Description"
.PP 
Common Data Structures and Functions\&. 


.SH "Container Data Types"
.PP
.IP "\(bu" 2
\fBLinked List\fP
.IP "\(bu" 2
\fBFIFO Queue\fP
.IP "\(bu" 2
\fBHandle Table for Reference Counting Data\fP
.IP "\(bu" 2
\fBHash Table\fP
.IP "\(bu" 2
\fBPriority Queue\fP
.PP
.SH "Common Runtime Components"
.PP
.IP "\(bu" 2
\fBThreading\fP
.IP "\(bu" 2
\fBGlobus Callback\fP
.IP "\(bu" 2
\fBMemory Pool\fP
.IP "\(bu" 2
\fBModule Activation Management\fP
.PP
.SH "Error Handling"
.PP
.IP "\(bu" 2
\fBGlobus Error API\fP
.PP
.SH "Miscellaneous Utilities"
.PP
.IP "\(bu" 2
\fBGlobus UUID Generator\fP
.IP "\(bu" 2
\fBURL String Parser\fP 
.PP

.SH "Typedef Documentation"
.PP 
.SS "typedef int \fBglobus_bool_t\fP"

.PP
Boolean type\&. Set values to either the constant GLOBUS_TRUE and GLOBUS_FALSE 
.SS "typedef uint32_t \fBglobus_result_t\fP"
Weak pointer to a Globus Error object, or the special value GLOBUS_SUCCESS 
.SS "typedef socklen_t \fBglobus_socklen_t\fP"

.PP
Size of a socket length parameter\&. The globus_socklen_t type is part of the POSIX socket interface and is also available in winsock2\&.h\&. In older UNIX implementations, this was variously a size_t or an int\&. 
.SH "Function Documentation"
.PP 
.SS "\fBglobus_result_t\fP globus_eval_path (const char * pathstring, char ** bufp)"

.PP
\fBParameters\fP
.RS 4
\fIpathstring\fP A string containing any number of variable path references using the syntax ${PATH-NAME} Supported path elements are
.IP "\(bu" 2
prefix
.IP "\(bu" 2
exec_prefix
.IP "\(bu" 2
sbindir
.IP "\(bu" 2
bindir
.IP "\(bu" 2
libdir
.IP "\(bu" 2
libexecdir
.IP "\(bu" 2
includedir
.IP "\(bu" 2
datarootdir
.IP "\(bu" 2
datadir
.IP "\(bu" 2
mandir
.IP "\(bu" 2
sysconfdir
.IP "\(bu" 2
sharedstatedir
.IP "\(bu" 2
localstatedir
.IP "\(bu" 2
perlmoduledir These strings are based on the parameters passed to this package configure script, but modified so that if GLOBUS_LOCATION is set in the environment, it is used instead of the configured path\&. 
.PP
.br
\fIbufp\fP Pointer to be set to a newly allocated string that has recursively resolved all substitution paths\&. 
.RE
.PP

.SS "int globus_tilde_expand (unsigned long options, \fBglobus_bool_t\fP url_form, char * inpath, char ** outpath)"

.PP
Expand ~ and/or ~user in path strings\&. Expand the leading ~ (or ~user) characters from inpath to the home directory path of the current user (or user specified in ~user); the result is stored in a newly allocated buffer *outpath (which will need to be freed by a call to globus_free\&.) The string following the ~/or ~user/ is copied verbatim to the output string\&.
.PP
\fBParameters\fP
.RS 4
\fIoptions\fP The expansion is conditioned by the options as defined in \fBglobus_tilde_expand\&.h\fP:
.IP "\(bu" 2
GLOBUS_TILDE_EXPAND: expand ~
.IP "\(bu" 2
GLOBUS_TILDE_USER_EXPAND: expand ~user Otherwise, the corresponding form is not expanded (just copied int the output path) 
.PP
.br
\fIurl_form\fP True if the inpath follows an URL format (/~) Used when expanding an url (for : <scheme>://host[:port][/path] were /path can be of the form /~[user][/\&.\&.\&.]\&. Otherwise, the form ~[user][/\&.\&.\&.] is expected\&. 
.br
\fIinpath\fP Input string to expand\&. 
.br
\fIoutpath\fP Output string; Need to be freed when not used anymore\&. 
.RE
.PP

.SH "Author"
.PP 
Generated automatically by Doxygen for globus_common from the source code\&.