New API call Xorriso_fetch_outlists()

This commit is contained in:
2012-09-11 09:28:05 +00:00
parent 9e887a3d0f
commit 7515b023c8
7 changed files with 230 additions and 35 deletions

View File

@ -27,6 +27,13 @@
@since major.minor.micro
If this mark is missing, then the feature was present before release 0.5.8.
Please note that struct XorrisO and its API calls are _not_ thread-safe in
general. It is not permissible to run two API calls on the same
XorrisO object concurrently.
The only exception is
Xorriso_fetch_outlists()
in order to learn about the ongoing text output of other API calls.
There is a lower level of API which consists of libisofs.h, libburn.h and
libisoburn.h. One should not mix those calls with the ones of xorriso.h .
@ -585,6 +592,37 @@ int Xorriso_push_outlists(struct XorrisO *xorriso, int *stack_handle,
int flag);
/** Obtain the currently collected text messages of redirected info and
result channel.
The messages are handed out as two lists. Both lists have to be disposed
via Xorriso_lst_destroy_all() when they are no longer needed.
The message lists are either NULL or represented by their first
Xorriso_lsT item.
This call is safe for being used by a concurrent thread while a
xorriso API call is being executed on the same struct XorrisO.
In such a situation, it should not be used with high frequency in order
not to hamper the ongoing xorriso operation by blocking its message
output facility. Ten times per second should be enough.
@since 1.2.6
@param xorriso The environment handle
@param stack_handle An id number returned by Xorriso_push_outlists()
and not yet revoked by Xorriso_pull_outlists().
Submit -1 to address the most recent valid id.
@param result_list Result and mark messages (usually directed to stdout)
@param info_list Info and mark messages (usually directed to stderr)
@param flag Bitfield for control purposes
bit0= fetch result channel
bit1= fetch info channel
If bit0 and bit1 are 0, both channels get fetched.
@return 1 on success, <=0 if failure
*/
int Xorriso_fetch_outlists(struct XorrisO *xorriso, int stack_handle,
struct Xorriso_lsT **result_list,
struct Xorriso_lsT **info_list, int flag);
/** Disable the redirection given by stack_handle. If it was the current
receiver of messages then switch output to the next older redirection
resp. to the normal channels if no redirections are stacked any more.
@ -594,7 +632,9 @@ int Xorriso_push_outlists(struct XorrisO *xorriso, int *stack_handle,
The message lists are either NULL or represented by their first
Xorriso_lsT item.
@param xorriso The environment handle
@param stack_handle The id number returned by Xorriso_push_outlists()
@param stack_handle An id number returned by Xorriso_push_outlists()
and not yet revoked by Xorriso_pull_outlists().
This handle is invalid after the call.
@param result_list Result and mark messages (usually directed to stdout)
@param info_list Info and mark messages (usually directed to stderr)
@param flag unused yet, submit 0