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

FreeBSD Manual Pages

  
 
  

home | help
KJSON_PUTINT(3)		    Library Functions Manual	       KJSON_PUTINT(3)

NAME
       kjson_putint,	kjson_putintp,	  kjson_putintstr,   kjson_putintstrp,
       kjson_string_putint -- put integer content for kcgijson

LIBRARY
       library "libkcgijson"

SYNOPSIS
       #include	<sys/types.h>
       #include	<stdarg.h>
       #include	<stdint.h>
       #include	<kcgi.h>
       #include	<kcgijson.h>

       enum kcgi_err
       kjson_putint(struct kjsonreq *req, int64_t v);

       enum kcgi_err
       kjson_putintp(struct kjsonreq *req, const char *name, int64_t v);

       enum kcgi_err
       kjson_string_putint(struct kjsonreq *req, int64_t v);

       enum kcgi_err
       kjson_putintstr(struct kjsonreq *r, int64_t v);

       enum kcgi_err
       kjson_putintstrp(struct kjsonreq	*r, const char *name, int64_t v);

DESCRIPTION
       Write  a	 64-bit	 integer  v  to	 a  context   req   initialised	  with
       khtml_open(3).  This formats the	value as [-]?[0-9]+.

       The  kjson_putint()  and	 kjson_putintstr() forms are for array scopes,
       kjson_putintp()	  and	 kjson_putintstrp()    for    objects,	   and
       kjson_string_putint() for open strings.

       Since JavaScript	is limited to 53 bits, it's possible that integers may
       be  truncated  with  kjson_putint() and family.	The alternative	forms,
       kjson_putintstr() and  kjson_putintstrp(),  emit	 the  value  within  a
       string.	 This  allows  the  JavaScript to parse	the integer and	handle
       overflow	and underflow explicitly.

       Passing a NULL value to name for	kjson_putintp()	or  kjson_putintstrp()
       is  equivalent  to calling kjson_putint() or kjson_putintstr(), respec-
       tively.

RETURN VALUES
       Returns an enum kcgi_err	indicating the error state.

       KCGI_OK
	    Success (not an error).

       KCGI_ENOMEM
	    Internal memory allocation failure.

       KCGI_HUP
	    The	output connection has been terminated.	 For  FastCGI  connec-
	    tions,   the   current   connection	  should   be	released  with
	    khttp_free(3) and parse loop reentered.

       KCGI_FORM
	    The	connection is still expecting headers with khttp_head(3).  In-
	    dicates that khttp_body(3) did not return with success or was  not
	    invoked.   For  FastCGI connections, the current connection	should
	    be released	with khttp_free(3) and parse loop reentered.

       KCGI_SYSTEM
	    Internal system error writing to the output	stream.

       KCGI_WRITER
	    The	incorrect form was used	for the	current	scope, for example, an
	    array-type write within an object.

EXAMPLES
       The following outputs a simple JSON document.  It assumes r is a	struct
       kreq pointer.  For brevity, it does not do any error checking.

	     khttp_head(r, kresps[KRESP_STATUS],
	       "%s", khttps[KHTTP_200]);
	     khttp_head(r, kresps[KRESP_CONTENT_TYPE],
	       "%s", kmimetypes[KMIME_APP_JSON]);
	     khttp_body(r);
	     kjson_open(&req, r);
	     kjson_obj_open(&req);
	     kjson_putintp(&req, "bar",	12345);
	     kjson_arrayp_open(&req, "baz");
	     kjson_putint(&req,	1)); /*	1 */
	     kjson_putintstr(&req, 1));	/* "1" */
	     kjson_close(&req);

SEE ALSO
       kcgijson(3)

AUTHORS
       Written by Kristaps Dzonsons <kristaps@bsd.lv>.

FreeBSD	Ports 14.quarterly	  $Mdocdate$		       KJSON_PUTINT(3)

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

home | help