• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

doc/H03-May-2022-3,0702,523

src/H03-May-2022-2,6281,371

COPYINGH A D05-Feb-200225.9 KiB511430

INSTALLH A D05-Feb-20027.6 KiB183143

Makefile.amH A D11-Sep-20031.8 KiB5423

Makefile.inH A D03-May-202219.5 KiB626509

READMEH A D11-Sep-20035.2 KiB159114

aclocal.m4H A D11-Sep-2003147.6 KiB4,4703,967

bootstrapH A D09-Sep-20031.1 KiB4015

config.guessH A D11-Sep-200341.1 KiB1,4081,211

config.h.inH A D11-Sep-20032.8 KiB10772

config.subH A D11-Sep-200329.6 KiB1,5061,365

configureH A D11-Sep-2003345.5 KiB11,5829,355

configure.acH A D10-Sep-20034 KiB130107

depcompH A D11-Sep-200313.4 KiB473299

install-shH A D11-Sep-20037 KiB295169

ltmain.shH A D11-Sep-2003140.7 KiB5,1134,100

missingH A D11-Sep-200310 KiB337263

mkinstalldirsH A D11-Sep-20031.9 KiB11285

shbuf.pc.inH A D09-Sep-2003226 119

README

1
2                                libshbuf 0.0.3
3
4   Copyright 2003 Lennart Poettering <mzfuohs (at) 0pointer (dot) de>
5     * [1]License
6     * [2]News
7     * [3]Overview
8     * [4]Status
9     * [5]Documentation
10     * [6]Requirements
11     * [7]Installation
12     * [8]Acknowledgements
13     * [9]Download
14
15License
16
17   This program is free software; you can redistribute it and/or modify
18   it under the terms of the GNU General Public License as published by
19   the Free Software Foundation; either version 2 of the License, or (at
20   your option) any later version.
21
22   This program is distributed in the hope that it will be useful, but
23   WITHOUT ANY WARRANTY; without even the implied warranty of
24   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
25   General Public License for more details.
26
27   You should have received a copy of the GNU General Public License
28   along with this program; if not, write to the Free Software
29   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
30
31News
32
33   Thu Sep 11 2003:
34
35   [10]Version 0.0.3 released; Changes include: autoconf update,
36   documentation update, some code bug fixes.
37
38Overview
39
40   libshbuf implements a new kind of IPC: the "shared buffer", a faster,
41   more flexible replacement for standard Unix FIFOs. It offers the
42   following advantages:
43     * Normally better latency and throughput
44     * Full access to the buffer at any time
45     * Connecting processes need not to be children of each other
46     * Arbitrary buffer lengths
47     * Memory mapped
48     * Backlog
49
50   The implementation is based on SysV shared memory, semaphores and
51   message queues. It makes use of POSIX pthreads.
52
53   Both an easy understandable C library and a basic Python module are
54   provided.
55
56Status
57
58   Version 0.0.3 is stable and feature complete.
59
60Documentation
61
62  Purpose
63
64   The concept of "shared buffers" is explicitly designed for high
65   thoughput, low latency streaming of data (e.g. audio) between two
66   processes, where a Unix FIFO is not enough. Thus it is optimized for
67   exactly two connecting peers, a minimum of locking and minimum of
68   copying of memory.
69
70  Technical Design
71
72   For each shared buffer two shared memory blocks, a semaphore and a
73   messages queue are created. The first shared memory block (aka
74   "control memory block") contains some watermark information about the
75   shared buffer. The second contains the buffer itself. The semaphore is
76   used for locking access to the control block. The message queue is
77   used for signalling the other side on changes of the buffer.
78
79   A shared buffer provider is a process which creates it with with
80   shbuf_create(). A new key for it will be registered (the key is an
81   integer value, the key_t of the control shm). A shared buffer client
82   is the other side of the buffer: it opens an existing buffer with
83   shbuf_open(key). Only one client and one provider may be connected at
84   once.
85
86   When using the notifying feature of libshbuf a background thread is
87   started, which listens on the message queue for certain messages. It
88   forwards these messages to a classic FIFO. The main program may listen
89   on this FIFO with a standard select() or poll().
90
91  Examples
92
93   See [11]src/shbuftest.c for a simple example.
94
95  API Reference
96
97   There is a Doxygen generated [12]API reference available.
98
99  Python Module
100
101   I wrote a basic shbuf module for interfacing shbuf objects from within
102   Python. It is called [13]python-shbuf.
103
104Requirements
105
106   libshbuf was developed and tested on Debian GNU/Linux "testing" from
107   September 2003, it should work on most other Linux distributions and
108   may be POSIX implementations since it uses GNU autoconf for source
109   code configuration.
110
111Installation
112
113   As this package is made with the GNU autotools you should run
114   ./configure inside the distribution directory for configuring the
115   source tree. After that you should run make for compilation and make
116   install (as root) for installation of libshbuf.
117
118Acknowledgements
119
120   Thanks go to Sam Clegg for some work, especially related to the build
121   system.
122
123Download
124
125   The newest release is always available from
126   [14]http://0pointer.de/lennart/projects/libshbuf/
127
128   The current release is [15]0.0.3
129
130   Get libshbuf's development sources from the CVS [16]repository.
131
132   There is a [17]Sourceforge project page for libshbuf
133     _________________________________________________________________
134
135
136    Lennart Poettering <mzfuohs (at) 0pointer (dot) de>, Sep 2003
137
138   $Id: README.html.in,v 1.3 2003/09/11 17:04:23 poettering Exp $
139
140References
141
142   1. README#license
143   2. README#news
144   3. README#overview
145   4. README#status
146   5. README#documentation
147   6. README#requirements
148   7. README#installation
149   8. README#acks
150   9. README#download
151  10. http://0pointer.de/lennart/projects/libshbuf/libshbuf-0.0.3.tar.gz
152  11. http://0pointer.de/lennart/projects/libshbuf/reference/html/shbuftest_8c-example.html
153  12. http://0pointer.de/lennart/projects/libshbuf/reference/html/
154  13. http://0pointer.de/lennart/projects/python-shbuf/
155  14. http://0pointer.de/lennart/projects/libshbuf/
156  15. http://0pointer.de/lennart/projects/libshbuf/libshbuf-0.0.3.tar.gz
157  16. http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/libshbuf/libshbuf/
158  17. http://sourceforge.net/projects/libshbuf/
159