Added SILC Thread Queue API
[crypto.git] / lib / doc / intro_reference.html
1 <big><b>Introduction to the Manual</b></big>
2 <br />&nbsp;<br />
3
4 This document is designed to help you understand how the reference manual is
5 organized, how it can be used efficiently, and how to find the information
6 you need.
7
8 <br />&nbsp;<br />&nbsp;<br />
9 <b>Target Audience</b>
10
11 <br />&nbsp;<br />
12 This Toolkit reference manual is targeted at application developers who
13 would like to add SILC support into their application, and to create new
14 SILC based applications.  It is especially aimed at C and C++ programmers,
15 who would like to create SILC client applications, either based on command
16 line interface (CLI) or on graphical user interface (GUI).
17
18 <br />&nbsp;<br />&nbsp;<br />
19 <b>Overview</b>
20
21 <br />&nbsp;<br />
22 The SILC Toolkit Reference Manual has collected the essential information
23 needed by application developers.  The following guide and reference
24 information is included in this manual:
25
26 <br />&nbsp;<br />
27 <li>Describing the documentation conventions<br />
28 <li>Describing the Toolkit design<br />
29 <li>Describing the SILC Protocol<br />
30 <li>Describing the programming conventions and idioms<br />
31 <li>Documenting the set of public APIs available for programmers<br />
32 <li>Describing the usage of various libraries
33
34 <br />&nbsp;<br />
35 You can download the latest SILC Toolkit from the 
36 <a href="http://silcnet.org">SILC Project Website</a>, which includes the
37 latest version of the reference manual. The Toolkit package includes the
38 full sources of the Toolkit, and includes several example applications and
39 piece of example codes.
40
41 <br />&nbsp;<br />&nbsp;<br />
42 <b>Using the Reference Manual</b>
43
44 <br />&nbsp;<br />
45 The API references are ogranized by libraries.  Each library will include
46 list of interfaces it provides.  Each of the interface in the library
47 provides list of public API items.  Each of the item in the list is a hyper
48 link that opens the detailed page describing the API item.  All API 
49 references are automatically generated from the sources and they have a clear
50 structural layout.  The references can provide cross links to other
51 references inside the specific interface or the specific library.
52
53 <br />&nbsp;<br />
54 The list of the library interface items can also include links to guides
55 that describe the use of a specific library or interface.  These are
56 intended as HOWTOs for programmers describing all aspects of the library
57 or interface.  They make the application development easier by also providing
58 small examples.
59
60 <br />&nbsp;<br />
61 All interfaces provided by the reference manual are public, and it does not
62 describe any internal or undocumented interfaces.  Since the reference
63 manual is automatically generated, it is constantly evolving.  It also
64 may omit some of the interfaces or libraries, that have not yet been
65 documented in the sources.
66
67 <br />&nbsp;<br />&nbsp;<br />
68 <b>Document Layout</b>
69
70 <br />&nbsp;<br />
71 The document layout provides quick links to libraries, interfaces and
72 specific API items by including list of links in the left and/or right
73 side of the page in the web browser.  These links can be used to directly
74 access the specific library, interface or API item.  The link lists may include
75 other links to guides, and reference links to outside the reference manual
76 as well.
77
78 <br />&nbsp;<br />&nbsp;<br />
79 <b>Reference Conventions</b>
80
81 <br />&nbsp;<br />
82 The structural layout of a API item describes the following information 
83 about the item:
84
85 <br />&nbsp;<br />
86 <li>Type.  Types that can appear are Variable, Structure, Function.  A name
87 that appears without type is constant, usually #define, enum or typedef.
88 Usually the source code of the constants are appended to the reference.
89
90 <br />&nbsp;<br />
91 <li>Name.  Describes the name of the item.  All functions start with 
92 <b>silc_</b> prefix, macros start with <b>SILC_</b> prefix, and type names
93 and structures start with <b>Silc</b> prefix.
94
95 <br />&nbsp;<br />
96 <li>Synopsis.  Functions also describe the synopsis of the function.
97
98 <br />&nbsp;<br />
99 <li>Description.  Each of the item is described in detail of what the item
100 does and how it can be used.
101
102 <br />&nbsp;<br />
103 <li>Notes.  Optionally the item may describe additional notes to the
104 detailed description.  These usually describe various exeptions or other
105 important notes that the programmer should be aware of.
106
107 <br />&nbsp;<br />
108 <li>Example.  Optionally the item may include a piece of source code that
109 give short example of how the item may be used.
110
111 <br />&nbsp;<br />
112 <li>See Also.  Optionally the item may include list of links to other
113 items, or some other references that relate to the described item.
114
115 <br />&nbsp;<br />
116 <li>Source.  Optionally the item may include the actual source code from
117 the header file where the documentation was automatically generated.
118
119 <br />&nbsp;<br />
120 Note that some of these informations are optional and not all API items
121 include all of these informations.
122
123 <br />&nbsp;<br />&nbsp;<br />
124 <b>Reference Example</b>
125
126 <br />&nbsp;<br />
127 Please refer to this link for short example of the API item reference 
128 layout: <a href="silcexample.html">SILC Example API</a>.
129