X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=doc%2Flibrrd.pod;h=0d05f6eeaa0f8c50b5a6e363299d34828b1a50af;hb=4f00d9538b60caaa7990e5474227736d8a7795d3;hp=04a295d520f9de7d341453ff0db3dfb317f0f66d;hpb=fadae458b4eba6719432bf7e3f7680d7f1fae7c0;p=rrdtool.git diff --git a/doc/librrd.pod b/doc/librrd.pod index 04a295d..0d05f6e 100644 --- a/doc/librrd.pod +++ b/doc/librrd.pod @@ -16,9 +16,52 @@ B This document is a work in progress, and should be considered incomplete as long as this warning persists. For more information about the B functions, always consult the source code. +=head1 CORE FUNCTIONS + +=over 4 + +=item B + +In some situations it is necessary to get the output of C without +writing it to a file or the standard output. In such cases an application +can ask B to call an user-defined function each time there +is output to be stored somewhere. This can be used, to e.g. directly feed +an XML parser with the dumped output or transfer the resulting string +in memory. + +The arguments for B are the same as for B +except that the output filename parameter is replaced by the user-defined +callback function and an additional parameter for the callback function +that is passed untouched, i.e. to store information about the callback state +needed for the user-defined callback to function properly. + +Recent versions of B internally use this callback mechanism +to write their output to the file provided by the user. + + size_t rrd_dump_opt_cb_fileout( + const void *data, + size_t len, + void *user) + { + return fwrite(data, 1, len, (FILE *)user); + } + +The associated call for B looks like + + res = rrd_dump_cb_r(filename, opt_header, + rrd_dump_opt_cb_fileout, (void *)out_file); + +where the last parameter specifies the file handle B +should write to. There's no specific condition for the callback to detect +when it is called for the first time, nor for the last time. If you require +this for initialization and cleanup you should do those tasks before and +after calling B respectively. + +=back + =head1 UTILITY FUNCTIONS -=over +=over 4 =item B @@ -38,6 +81,16 @@ end of the new C. Returns 1 on success, 0 on failure. if (!rrd_add_ptr(&arr, &arr_size, elem)) handle_failure(); +=item B + +Like C, except the destination is allocated in chunks of +C. C points to the number of entries allocated, whereas +C points to the number of valid pointers. If more pointers are +needed, C pointers are allocated and C is increased +accordingly. C must be E= C. + +This method improves performance on hosts with expensive C. + =item B Like C, except adds a C of the source string. @@ -48,6 +101,14 @@ Like C, except adds a C of the source string. if (!rrd_add_strdup(&arr, &arr_size, str)) handle_failure(); +=item B + +Like C, except the destination is allocated in chunks of +C. C points to the number of entries allocated, whereas +C points to the number of valid pointers. If more pointers are +needed, C pointers are allocated and C is increased +accordingly. C must be E= C. + =item B Free an array of pointers allocated by C or @@ -58,41 +119,36 @@ source pointer will be NULL and the count will be zero. rrd_free_ptrs(&arr, &arr_size); /* here, arr == NULL && arr_size == 0 */ -=item B +=item B -In some situations it is necessary to get the output of C without -writing it to a file or the standard output. In such cases an application -can ask B to call an user-defined function each time there -is output to be stored somewhere. This can be used, to e.g. directly feed -an XML parser with the dumped output or transfer the resulting string -in memory. +Create the directory named C including all of its parent +directories (similar to C on the command line - see L for +more information). The argument C specifies the permissions to use. It +is modified by the process's C. See L for more details. -The arguments for B are the same as for B -except that the output filename parameter is replaced by the user-defined -callback function and an additional parameter for the callback function -that is passed untouched, i.e. to store information about the callback state -needed for the user-defined callback to function properly. +The function returns 0 on success, a negative value else. In case of an error, +C is set accordingly. Aside from the errors documented in L, +the function may fail with the following errors: -Recent versions of B internally use this callback mechanism -to write their output to the file provided by the user. +=over 4 - size_t rrd_dump_opt_cb_fileout( - const void *data, - size_t len, - void *user) - { - return fwrite(data, 1, len, (FILE *)user); - } +=item B -The associated call for B looks like +C is C or the empty string. - res = rrd_dump_cb_r(filename, opt_header, - rrd_dump_opt_cb_fileout, (void *)out_file); +=item B -where the last parameter specifies the file handle B -should write to. There's no specific condition for the callback to detect -when it is called for the first time, nor for the last time. If you require -this for initialization and cleanup you should do those tasks before and -after calling B respectively. +Insufficient memory was available. + +=item B> =back + +In contrast to L, the function does B fail if C +already exists and is a directory. + +=back + +=head1 AUTHOR + +RRD Contributors