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

FreeBSD Manual Pages

  
 
  

home | help
DC_PLUG_READ(2)			   distcache		       DC_PLUG_READ(2)

NAME
       DC_PLUG_read,   DC_PLUG_consume,	  DC_PLUG_write,   DC_PLUG_write_more,
       DC_PLUG_commit, DC_PLUG_rollback	- DC_PLUG read/write functions

SYNOPSIS
	#include <distcache/dc_plug.h>

	int DC_PLUG_read(DC_PLUG *plug,	int resume, unsigned long *request_uid,
			 DC_CMD	*cmd, const unsigned char **payload_data,
			 unsigned int *payload_len);
	int DC_PLUG_consume(DC_PLUG *plug);
	int DC_PLUG_write(DC_PLUG *plug, int resume, unsigned long request_uid,
			  DC_CMD cmd, const unsigned char *payload_data,
			  unsigned int payload_len);
	int DC_PLUG_write_more(DC_PLUG *plug, const unsigned char *data,
			       unsigned	int data_len);
	int DC_PLUG_commit(DC_PLUG *plug);
	int DC_PLUG_rollback(DC_PLUG *plug);

	typedef	enum {
		DC_CMD_ERROR,
		DC_CMD_ADD,
		DC_CMD_GET,
		DC_CMD_REMOVE,
		DC_CMD_HAVE
	} DC_CMD;

DESCRIPTION
       DC_PLUG_read() will attempt to open the next distcache message received
       by plug for reading. This message will block the	reading	of  any	 other
       received	 messages  remain until	DC_PLUG_consume() is called. If	a mes-
       sage  has  already  been	 opened	 for   reading	 inside	  plug,	  then
       DC_PLUG_read() will fail	unless resume is set to	non-zero in which case
       it  will	 simply	 re-open  the  message that was	already	being read. If
       DC_PLUG_read() succeeds,	request_uid, cmd, payload_data and payload_len
       are populated with the message's	data. Note that	payload_data points to
       the original data stored	inside plug and	this pointer is	only valid un-
       til the next call to DC_PLUG_consume().

       DC_PLUG_consume() will close the	message	currently opened  for  reading
       in  plug,  and will allow a future call to DC_PLUG_read() to succeed if
       there any subsequent (complete) messages	received  from	the  plug  ob-
       ject's connection.

       DC_PLUG_write() will attempt to open a distcache	message	for writing in
       plug.  If  successful, this message will	block the writing of any other
       messages	until the message is committed with DC_PLUG_commit()  or  dis-
       carded  with  DC_PLUG_rollback().  If a message has already been	opened
       for writing, DC_PLUG_write() will fail unless  resume  is  non-zero  in
       which  case  the	 message will be re-opened and will overwrite the set-
       tings from the previous DC_PLUG_write() call.  This  is	equivalent  to
       DC_PLUG_rollback()  followed immediately	by DC_PLUG_write() with	a zero
       resume value. Note that payload_len can be zero (and thus  payload_data
       can  be	NULL)  even if the message will	eventually have	payload	data -
       this can	be  supplemented  afterwards  using  the  DC_PLUG_write_more()
       function.  request_uid and cmd, on the other hand, must be specified at
       once in DC_PLUG_write().

       DC_PLUG_write_more() will attempt to add	more payload data to the  mes-
       sage  currently	opened for writing in plug. This data will be concate-
       nated to	the end	of any payload data already provided in	prior calls to
       DC_PLUG_write() or DC_PLUG_write_more().

       DC_PLUG_commit()	will close the message currently opened	 for  writing,
       and queue it for	serialisation out on the plug object's connection.

       DC_PLUG_rollback()  will	discard	the message currently opened for writ-
       ing.

RETURN VALUES
       All these DC_PLUG functions return zero on failure, otherwise non-zero.

SEE ALSO
       DC_PLUG_new(2) -	Basic DC_PLUG functions.

       distcache(8) - Overview of the distcache	architecture.

       http://www.distcache.org/ - Distcache home page.

AUTHOR
       This toolkit was	designed and implemented by Geoff Thorpe  for  Crypto-
       graphic	Appliances  Incorporated.  Since the project was released into
       open source, it has a home page and a project environment where	devel-
       opment,	mailing	 lists,	 and releases are organised. For problems with
       the software or this man	page please check  for	new  releases  at  the
       project web-site	below, mail the	users mailing list described there, or
       contact the author at geoff@geoffthorpe.net.

       Home Page: http://www.distcache.org

1.5.1				  2004.10.19		       DC_PLUG_READ(2)

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

home | help