.TH "globus_common" 3 "Version 18.14" "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 : ://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\&.