Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LIBDATOVKA(3)		     Manual for	Libdatovka		 LIBDATOVKA(3)

NAME
       libdatovka - ISDS client	library

SYNOPSIS
       #include	<libdatovka/isds.h>
       #include	<stdio.h>

       isds_error err;
       struct isds_ctx *ctx;

       err = isds_init();
       ctx = isds_ctx_create();

       err = isds_login(ctx, NULL, "username", "password", NULL, NULL);
       if (err)	{
	   printf("isds_login()	failed:	%s: %s\n",
	       isds_strerror(err), isds_long_message(ctx));
       } else {
	   printf("Logged in.\n");
       }

       err = isds_ctx_free(&ctx);
       err = isds_cleanup();

DESCRIPTION
       This  is	a client library for accessing SOAP services of	ISDS (Informan
       systm datovch schrnek / Data Box	 Information  System)  as  defined  in
       Czech  ISDS  Act	(300/2008 Coll.)[1] and	implied	documents. Current im-
       plementation details are	described in Provozn d that can	be  downloaded
       from Dokumenty ke staen section of ISDS Information Portal[2].

       The  library provides a C language interface with synchronous non-reen-
       trant blocking calls. Network communication progress reporting and  op-
       eration	logging	 and library debugging are implemented by calling back
       application-provided functions. Network	operations  can	 be  cancelled
       from network reporting call-back.

LIBRARY	INITIALIZATION AND DEINITIALIZATION
       A  libdatovka  application  must	 include  the libdatovka/isds.h	header
       file. The application must call isds_init function  to  initialize  the
       library	before	calling	any other library functions. After last	libda-
       tovka call, isds_cleanup	function should	be called  to  clean  up  some
       global resources	and to deinitialize dependent libraries.

CONTEXTS
       Most  of	the functions operate on an established	connection to the ISDS
       server. This is called a	context	and it's represented by	a  pointer  to
       an  opaque isds_ctx structure. The structure maintains state about net-
       work connection,	authorization or error from last call on the context.

       The context is allocated	by isds_ctx_create function and	deallocated by
       isds_ctx_free function.

       There are more context subtypes.	A specific subtype is assigned to  the
       context	when a fresh new context is passed to one of the few stratify-
       ing	  functions	    (isds_login,	 czp_convert_document,
       isds_request_new_testing_box). Once the context is specialized, you can
       use  it	only with functions understanding the subtype. This is not en-
       forced by the library now, but it does not matter much because all  the
       other  functions	 assume	 the  isds_login was called on the context. In
       other words, do not share the context among the three stratifying func-
       tions.

       For  example  create  a	context	 with	isds_ctx_create,   then	  call
       isds_login,  then  work	with  box, then	call isds_logout. Here you can
       reuse the context and log in as	another	 user  by  calling  isds_login
       again  or  destroy  the context with isds_ctx_free if you don't need it
       anymore.

       Or create a context with	isds_ctx_create, send a	document to authorized
       conversion using	czp_convert_document, then you can send	more documents
       to the authorized conversion by calling czp_convert_document  again  on
       the same	context	and finally destroy the	context	with isds_ctx_free.

ERRORS
       Most of the functions return an error code of isds_error	type.  IE_SUC-
       CESS  value denotes a successful	call. Other values represent some kind
       of failure.

       You can use isds_strerror function to obtain a  human  readable	string
       representation of the error code.

       If   a	function   with	  context   argument   failed,	 you  can  use
       isds_long_message function to obtain a detailed error  message.	Please
       note that returned value	lasts only to the next call on the context.

CHARACTER ENCODING
       All  strings  exchanged between the library and the application are en-
       coded in	UTF-8. Although	there are a few	exceptions:

          isds_strerror and isds_long_message functions return	locale encoded
	   string.

          isds_version	returns	locale encoded string.

          Log call-back function set  by  isds_set_log_callback  function  is
	   called with raw byte	stream.

          isds_pki_credentials	 structure  string  members have encoding spe-
	   cific to cryptographic library linked to cURL library.

GLOBAL SETTINGS
       Some functions influence	library	behaviour globally. These are:

          isds_init and isds_cleanup used to initialize and deinitialize  the
	   library.

          isds_set_logging and	isds_set_log_callback to set logging.

LOGGING	AND DEBUGGING
       Logging	is global for all libdatovka calls. Log	level and facility can
       be set with isds_set_logging function.

       The log is printed on standard error output by default. Application can
       redirect	the messages  to  a  call-back	function  by  registering  the
       call-back function with isds_set_log_callback.

NETWORK	INPUT/OUTPUT
       Some  functions	operating  on  a context create	network	sockets	and do
       network input and output.

       Network timeout can be set  with	 isds_set_timeout  function.  Function
       calls aborted owing to the timeout will return IE_TIMED_OUT.

       Network	operation  progress  can be monitored by a call-back function.
       The     call-back     function	  can	  be	 registered	 using
       isds_set_xferinfo_callback function. Registered call-back function will
       be  called  periodically	with arguments declaring amount	of transferred
       data. The call-back return value	determines whether to continue in  the
       network operation or to cancel the operation. Functions failed owing to
       cancelling network operation will return	IE_ABORTED. The	now deprecated
       call-back  function  isds_set_progress_callback	behaves	 similarly but
       uses floating-point values to pass amounts of transferred data.	Is  is
       discouraged to use isds_set_progress_callback in	new code.

MEMORY MANAGEMENT
       The  library  provides  destructors for all libdatovka data structures.
       For example isds_ctx_free function accepts a pointer to	a  pointer  to
       the  isds_ctx  structure, frees the double referenced structure (recur-
       sively),	writes NULL to the  pointed  pointer  (which  invalidates  the
       pointer effectively) and	returns	nothing.

       Upon  a	function  call,	all output arguments are automatically reallo-
       cated to	desired	size. On a function failure, all output	arguments  are
       automatically  deallocated  and	their pointers set to NULL. Exceptions
       are documented at respective functions.

       Output strings are allocated using standard malloc call.	Application is
       responsible for their deallocation (in case of no failure  and  if  not
       specified  otherwise.)  Use  standard free call for strings, use	libda-
       tovka destructors for libdatovka	structures.

AVAILABLE FUNCTIONS, TYPES, AND	CONSTANTS
       See libdatovka/isds.h header file.

SEE ALSO
       isds.h.libdatovka(3), libcurl(3)

AUTHORS
       CZ.NIC, z. s. p.	o.
	   Maintains libdatovka. Has been contributing to libisds.

       Petr Psa
	   He has written libisds.

NOTES
	1. Czech
		     ISDS Act (300/2008	Coll.)
	   http://portal.gov.cz/zakon/300/2008

	2. Dokumenty ke	staen section of
		     ISDS Information Portal
	   https://www.datoveschranky.info/ke-stazeni

[FIXME:	source]			  04/12/2025			 LIBDATOVKA(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libdatovka&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help