This file is indexed.

/usr/share/doc/ucommon-doc/html/index.html is in ucommon-doc 7.0.0-9.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UCommon: GNU uCommon C++</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">UCommon
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">GNU uCommon C++ </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>A portable C++ threading library for embedded applications.GNU uCommon C++ is meant as a very light-weight library to facilitate using C++ design patterns even for very deeply embedded applications, such as for systems using uclibc along with posix threading support. For this reason, uCommon disables language features that consume memory or introduce runtime overhead, such as rtti and exception handling, and assumes one will mostly be linking applications with other pure C based libraries rather than using the overhead of the standard C++ library and other class frameworks.</p>
<p>uCommon by default does build with support for the bloated ansi standard c++ library unless this is changed at configure time with the &ndash;disable-stdcpp option. This is to assure maximum portability and will be used to merge uCommon with GNU Common C++ to form GNU Common C++ 2.0. Some specific features are tested for when stdc++ is enabled, and these will be used to add back in GNU Common C++ classes such as TCP Stream and serialization.</p>
<p>uCommon introduces some Objective-C based design patterns, such as reference counted objects, memory pools, smart pointers, and offers dynamic typing through very light use of inline templates for pure type translation that are then tied to concrete base classes to avoid template instantiation issues. C++ auto-variable automation is also used to enable referenced objects to be deleted and threading locks to be released that are acquired automatically when methods return rather than requiring one to explicitly code for these things.</p>
<p>uCommon depends on and when necessary will introduce some portable C replacement functions, especially for sockets, such as adding getaddrinfo for platforms which do not have it, or when threadsafe versions of existing C library functions are needed. Basic socket support for connecting to named destinations and multicast addresses, and binding to interfaces with IPV4 and IPV6 addresses is directly supported. Support for high resolution timing and Posix realtime clocks are also used when available.</p>
<p>uCommon builds all higher level thread synchronization objects directly from conditionals. Hence, on platforms which for example do not have rwlocks, barriers, or semaphores, these are still found in uCommon. A common and consistent call methodology is used for all locks, whether mutex, rw, or semaphore, based on whether used for exclusive or "shared" locking.</p>
<p>uCommon requires some knowledge of compiler switches and options to disable language features, the C++ runtime and stdlibs, and associated C++ headers. The current version supports compiling with GCC, which is commonly found on GNU/Linux, OS/X, BSD based systems, and many other platforms; and the Sun Workshop compiler, which is offered as an example how to adapt uCommon for additional compilers. uCommon may also be built with GCC cross compiling for mingw32 to build threaded applications for Microsoft Windows targets nativiely.</p>
<p>The minimum platform support for uCommon is a modern and working posix pthread threading library. I further use a subset of posix threads to assure wider portability by avoiding more specialized features like process shared synchronization objects, pthread rwlocks and pthread semaphores, as these are not implemented on all platforms that I have found. Finally, I have eliminated the use of posix thread cancellation. </p><dl class="section author"><dt>Author</dt><dd>David Sugar <a href="#" onclick="location.href='mai'+'lto:'+'dyf'+'et'+'@gn'+'ut'+'ele'+'ph'+'ony'+'.o'+'rg'; return false;">dyfet<span style="display: none;">.nosp@m.</span>@gnu<span style="display: none;">.nosp@m.</span>telep<span style="display: none;">.nosp@m.</span>hony<span style="display: none;">.nosp@m.</span>.org</a> </dd></dl>
<dl class="section user"><dt>License:</dt><dd>GNU Lesser General Public License Version 3 or later </dd></dl>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.12
</small></address>
</body>
</html>