open62541pp 0.16.0
C++ wrapper of open62541
Loading...
Searching...
No Matches
example.hpp
Go to the documentation of this file.
1#pragma once
2#include <string>
3
4namespace MyLibrary {
5
6enum Color { red = 1, green = 2, blue = 3 };
7
8/**
9 * @brief Example class to demonstrate the features of the custom CSS.
10 *
11 * @author jothepro
12 *
13 */
14class Example {
15public:
16 /**
17 * @brief brief summary
18 *
19 * doxygen test documentation
20 *
21 * @param test this is the only parameter of this test function. It does nothing!
22 *
23 * # Supported elements
24 *
25 * These elements have been tested with the custom CSS.
26 *
27 * ## Tables
28 *
29 * <div class="tabbed">
30 *
31 * - <b class="tab-title">Basic</b>
32 * This theme supports normal markdown tables:<br>
33 * | Item | Title | Description | More |
34 * |-----:|-------|-----------------------|--------------------------------------------|
35 * | 1 | Foo | A placeholder | Some lorem ipsum to make this table wider. |
36 * | 2 | Bar | Also a placeholder | More lorem ipsum. |
37 * | 3 | Baz | The third placeholder | More lorem ipsum. |
38 * - <b class="tab-title">Centered</b>
39 * <center>
40 * A table can be centered with the `<center>` html tag:<br>
41 * | Item | Title | Description | More |
42 * |-----:|-------|-----------------------|--------------------------------------------|
43 * | 1 | Foo | A placeholder | Some lorem ipsum to make this table wider. |
44 * | 2 | Bar | Also a placeholder | More lorem ipsum. |
45 * | 3 | Baz | The third placeholder | More lorem ipsum. |
46 * </center>
47 * - <b class="tab-title">Stretched</b>
48 * A table wrapped in `<div class="full_width_table">` fills the full page width.
49 * <div class="full_width_table">
50 * | Item | Title | Description | More |
51 * |-----:|-------|-----------------------|--------------------------------------------|
52 * | 1 | Foo | A placeholder | Some lorem ipsum to make this table wider. |
53 * | 2 | Bar | Also a placeholder | More lorem ipsum. |
54 * | 3 | Baz | The third placeholder | More lorem ipsum. |
55 * </div>
56 * **Caution**: This will break the overflow scrolling support!
57 * - <b class="tab-title">Complex</b>
58 * Complex [Doxygen tables](https://www.doxygen.nl/manual/tables.html) are also supported as seen in @ref multi_row "this example":<br>
59 * <table>
60 * <caption id="multi_row">Complex table</caption>
61 * <tr><th>Column 1 <th>Column 2 <th>Column 3
62 * <tr><td rowspan="2">cell row=1+2,col=1<td>cell row=1,col=2<td>cell row=1,col=3
63 * <tr><td rowspan="2">cell row=2+3,col=2 <td>cell row=2,col=3
64 * <tr><td>cell row=3,col=1 <td>cell row=3,col=3
65 * </table>
66 * - <b class="tab-title">Overflow Scrolling</b> The table content is scrollable if the table gets too wide.<br>
67 * | first_column | second_column | third_column | fourth_column | fifth_column | sixth_column | seventh_column | eighth_column | ninth_column |
68 * |--------------|---------------|--------------|---------------|--------------|--------------|----------------|---------------|--------------|
69 * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
70 * - <b class="tab-title">Images</b>A table can contain images:<br>
71 * | Column 1 | Column 2 |
72 * |---------------------------|-------------------------------------------------|
73 * | ![doxygen](testimage.png) | ← the image should not be inverted in dark-mode |
74 *
75 *
76 * </div>
77 *
78 * ## Diagrams
79 *
80 * Graphviz diagrams support dark mode and can be scrolled once they get too wide:
81 *
82 * \dot Graphviz with a caption
83 * digraph example {
84 * node [fontsize="12"];
85 * rankdir="LR"
86 * a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k;
87 * }
88 * \enddot
89 *
90 * ## Lists
91 *
92 * - element 1
93 * - element 2
94 *
95 * 1. element 1
96 * ```
97 * code in lists
98 * ```
99 * 2. element 2
100 *
101 * ## Quotes
102 *
103 * > Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
104 * > ut labore et dolore magna aliqua. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque viverra.
105 * > Velit sed ullamcorper morbi tincidunt ornare.
106 * >
107 * > Lorem ipsum dolor sit amet consectetur adipiscing elit duis.
108 * *- jothepro*
109 *
110 * ## Code block
111 *
112 * ```cpp
113 * auto x = "code within md fences";
114 * ```
115 *
116 * @code{.cpp}
117 * // code within @code block
118 * while(true) {
119 * auto example = std::make_shared<Example>(5);
120 * example->test("test");
121 * }
122 * @endcode
123 *
124 * // code within indented code block
125 * auto test = std::shared_ptr<Example(5);
126 *
127 *
128 * Inline `code` elements in a text. *Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.* This also works within multiline text and does not break the `layout`.
129 *
130 *
131 * ## Special hints
132 *
133 * @warning this is a warning only for demonstration purposes
134 *
135 * @note this is a note to show that notes work. They can also include `code`:
136 * @code{.c}
137 * void this_looks_awesome();
138 * @endcode
139 *
140 * @bug example bug
141 *
142 * @deprecated None of this will be deprecated, because it's beautiful!
143 *
144 * @invariant This is an invariant
145 *
146 * @pre This is a precondition
147 *
148 * @post This is a postcondition
149 *
150 * @todo This theme is never finished!
151 *
152 * @remark This is awesome!
153 *
154 */
155 std::string test(const std::string& test);
156
157 virtual int virtualfunc() = 0;
158
159 static bool staticfunc();
160
161
162};
163
165 std::string foo();
166}
167
168}
169
Example class to demonstrate the features of the custom CSS.
Definition example.hpp:14
std::string test(const std::string &test)
brief summary
virtual int virtualfunc()=0
static bool staticfunc()