This file is indexed.

/usr/share/doc/libgammu-dev/internal/state-machine.rst is in libgammu-dev 1.33.0-3.

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
State Machine
=============

The state machine is core of libGammu operations. It gets the data from the
phone and dispatches them through protocol layer to phone drivers.

To see how it operates, following figure shows example of what happens when
:c:func:`GSM_GetModel` is called from the program:

.. graphviz::

   digraph statemachine {
        "GSM_GetModel" -> "Phone.Functions.GetModel";
        "Phone.Functions.GetModel" -> "GSM_WaitFor";
        "GSM_WaitFor" -> "Protocol.Functions.WriteMessage";
        "Protocol.Functions.WriteMessage" -> "GSM_WaitForOnce";
        "GSM_WaitForOnce" -> "GSM_WaitFor" [label="Retries"];
        "GSM_WaitForOnce" -> "GSM_ReadDevice";
        "GSM_ReadDevice" -> "GSM_WaitForOnce" [label="Wair for complete request"];
        "GSM_ReadDevice" -> "Device.Functions.ReadDevice";
        "Device.Functions.ReadDevice" -> "GSM_ReadDevice" [label="Wait for data"];
        "Device.Functions.ReadDevice" -> "Protocol.Functions.StateMachine";
        "Protocol.Functions.StateMachine" -> "Phone.Functions.DispatchMessage"
        "Phone.Functions.DispatchMessage" -> "GSM_DispatchMessage";
        "GSM_DispatchMessage" -> "Phone.Functions.ReplyFunctions[]()";
        "Phone.Functions.ReplyFunctions[]()" -> "Phone.Functions.GetModel";
        "Phone.Functions.GetModel" -> "GSM_GetModel";
   }