summaryrefslogtreecommitdiffstats
path: root/examples/scxml/invoke-dynamic/doc/src/invoke-dynamic.qdoc
blob: 76560ea0818927344a0771935948a35946e33e78 (plain)
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
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \example invoke-dynamic
    \title Qt SCXML Invoke Example (Dynamic)
    \ingroup examples-qtscxml

    \brief Invokes a dynamically loaded nested state machine.

    \image invoke-dynamic.png

    \e{Invoke Example (Dynamic)} demonstrates how to use the \c <invoke> element
    with generated nested state-machines, where the SCXML file is dynamically
    loaded. The \c <invoke> element is used to create an instance of an external
    service.

    \include examples-run.qdocinc

    \section1 Invoking the State Machine

    In \e statemachine.scxml, we specify a state machine with the name
    \e Directions of type \e http://www.w3.org/TR/scxml/ to invoke:

    \quotefromfile invoke-common/statemachine.scxml
    \skipto scxml
    \printuntil

    \section1 Dynamically Loading the State Machine

    We link against the Qt SCXML module by adding the following line to the
    project build files.

    With qmake to the \e invoke-dynamic.pro
    \quotefromfile invoke-dynamic/invoke-dynamic.pro
    \skipto QT
    \printline scxml

    With cmake to the \e CMakeLists.txt
    \quotefromfile invoke-dynamic/CMakeLists.txt
    \skipto find_package
    \printline Scxml
    \skipto target_link_libraries
    \printuntil )

    We dynamically create the state machine, as follows:

    \quotefromfile invoke-dynamic/invoke-dynamic.qml
    \skipto import
    \printuntil }
*/