|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| doc/ | H | 03-May-2022 | - | 3,070 | 2,523 |
| src/ | H | 03-May-2022 | - | 2,628 | 1,371 |
| COPYING | H A D | 05-Feb-2002 | 25.9 KiB | 511 | 430 |
| INSTALL | H A D | 05-Feb-2002 | 7.6 KiB | 183 | 143 |
| Makefile.am | H A D | 11-Sep-2003 | 1.8 KiB | 54 | 23 |
| Makefile.in | H A D | 03-May-2022 | 19.5 KiB | 626 | 509 |
| README | H A D | 11-Sep-2003 | 5.2 KiB | 159 | 114 |
| aclocal.m4 | H A D | 11-Sep-2003 | 147.6 KiB | 4,470 | 3,967 |
| bootstrap | H A D | 09-Sep-2003 | 1.1 KiB | 40 | 15 |
| config.guess | H A D | 11-Sep-2003 | 41.1 KiB | 1,408 | 1,211 |
| config.h.in | H A D | 11-Sep-2003 | 2.8 KiB | 107 | 72 |
| config.sub | H A D | 11-Sep-2003 | 29.6 KiB | 1,506 | 1,365 |
| configure | H A D | 11-Sep-2003 | 345.5 KiB | 11,582 | 9,355 |
| configure.ac | H A D | 10-Sep-2003 | 4 KiB | 130 | 107 |
| depcomp | H A D | 11-Sep-2003 | 13.4 KiB | 473 | 299 |
| install-sh | H A D | 11-Sep-2003 | 7 KiB | 295 | 169 |
| ltmain.sh | H A D | 11-Sep-2003 | 140.7 KiB | 5,113 | 4,100 |
| missing | H A D | 11-Sep-2003 | 10 KiB | 337 | 263 |
| mkinstalldirs | H A D | 11-Sep-2003 | 1.9 KiB | 112 | 85 |
| shbuf.pc.in | H A D | 09-Sep-2003 | 226 | 11 | 9 |
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