More information in the Readme file
[pingcheck] / Readme
1 1.   Introduction
2 =======================================
3 This application provides means to check the availability of remote hosts
4 through pings to them.
5
6
7 1.1. Rationale
8 ---------------------------------------
9 The application uses ICMP echo requests messages to verify if a given host
10 is available or not.
11
12 The host's address can be an IP or a DNS.
13
14
15 1.2. How to use
16 ---------------------------------------
17 There are many ways to invoke the application, the simplest is just type:
18   ./libpingcheck
19 which uses the configuration values from the configuration file (describled in
20 section 4.Configuration file).
21
22
23 1.3. Resources
24 ---------------------------------------
25 Further information about the problem domain can be found in the following
26 resources:
27 - http://tools.ietf.org/html/rfc792
28 - http://en.wikipedia.org/wiki/Ping
29 - http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol
30
31
32
33 2.   Code Conventions
34 =======================================
35 This section describes the code conventions that must be followed when maintain
36 this code.
37
38
39 2.1. Data Types
40 ---------------------------------------
41 This section is a guideline about the type you MUST use when declaring
42 variables and constants. These types were chose to provide portability and
43 improve code reradability.
44
45 - Use the std::string to represent array of characters.
46
47 - Use int32_t, int16_t and int8_t (or their unsigned couter parts) - instead of
48   int, short and char, respectively - when the variable or constant MUST have a
49   specific size (e.g. like in the protocol headers). This documents that the
50   variable has the given number of bits. This states clear the intent of the
51   original programmer and avoids improper modifications.
52
53 - Use int or uint for regular integer numbers that do not require any specific
54   size.
55
56 - Use std::size_t for integers that represent sizes of vectors, objects or
57   buffers. Thus leaving the size difinition to the platform.
58
59
60 2.2. Coding Style
61 ---------------------------------------
62 The coding style used in this program is in accordance with the Intra2net,
63 which can be found in the following source:
64
65 - http://intranet/support_wiki/doku.php?id=entwicklung:codingstyle
66
67
68 2.3. Versioning
69 ---------------------------------------
70 Version is built as follows:
71   major.minor[-[a|b|rc]]
72 where:
73 - major represents big changes in application functionality.
74 - minor means small changes of bug fixes.
75 - a, b and rc stand for Alpha, Beta and Release Candidate respectivelly. Though
76   they are optional and not required in public release.
77
78
79
80 3.   Source Code
81 =======================================
82 In this section is presented an overview of the source code and key design
83 decisions.
84
85
86 3.1. Main directories
87 ---------------------------------------
88 The sources are spread over these distincts directories:
89 - src: contains the main application.
90 - test: where is located the unit tests.
91 - conf: keeps default and example configuration files.
92
93
94
95 4.   Configuration file
96 =======================================
97
98