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