skaclient.html (2596B)
1 <html> 2 <head> 3 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5 <meta http-equiv="Content-Language" content="en" /> 6 <title>skalibs: the skaclient library interface</title> 7 <meta name="Description" content="skalibs: the skaclient library interface" /> 8 <meta name="Keywords" content="skalibs c skaclient library libunixonacid" /> 9 <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> --> 10 </head> 11 <body> 12 13 <p> 14 <a href="index.html">libunixonacid</a><br /> 15 <a href="../libskarnet.html">libskarnet</a><br /> 16 <a href="../index.html">skalibs</a><br /> 17 <a href="//skarnet.org/software/">Software</a><br /> 18 <a href="//skarnet.org/">skarnet.org</a> 19 </p> 20 21 <h1> The <tt>skaclient</tt> library interface </h1> 22 23 <p> 24 The following functions are declared in the <tt>skalibs/skaclient.h</tt> header, 25 and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. 26 </p> 27 28 <h2> General information </h2> 29 30 <p> 31 <tt>skaclient</tt> is a client-server initiation protocol framework, allowing a process 32 (the "client") to either connect to another process (the "server") via a Unix domain socket, 33 or spawn such a "server" process itself. The client and the server then communicate 34 via <em>two</em> sockets, one for synchronous data, the other for asynchronous 35 data; they exchange <a href="unixmessage.html">unixmessages</a>. 36 </p> 37 38 <p> 39 The <tt>skaclient</tt> framework is used in several places in skarnet.org software, 40 whenever a server can send asynchronous data to its client. For instance: 41 </p> 42 43 <ul> 44 <li> Communication between notification subscribers such as 45 <a href="//skarnet.org/software/s6/s6-ftrig-wait.html">s6-ftrig-wait</a> 46 and their own <a href="//skarnet.org/software/s6/s6-ftrigrd.html">s6-ftrigrd</a> 47 daemon </li> 48 <li> Communication between clients of the 49 <a href="//skarnet.org/software/s6/libs6lock/">s6lock library</a> and a 50 <a href="//skarnet.org/software/s6/libs6lock/s6lockd.html">s6lockd 51 server</a> </li> 52 <li> Communication between a client such as 53 <a href="//skarnet.org/software/s6-dns/s6-dnsip4-filter.html">s6-dnsip4-filter</a>, 54 in need of asynchronous DNS service, and its own 55 <a href="//skarnet.org/software/s6-dns/skadns/skadnsd.html">skadnsd</a> 56 daemon </li> 57 <li> The <a href="//skarnet.org/software/skabus/">skabus</a> Unix bus 58 infrastructure is entirely based on the skaclient framework to transmit 59 unixmessages across processes. </li> 60 </ul> 61 62 <h2> Programming </h2> 63 64 <p> 65 FIXME: to be completed. 66 </p> 67 68 </body> 69 </html>