summaryrefslogtreecommitdiff
path: root/Examples/test-suite/doxygen_misc_constructs.i
blob: 9cf95de392ff1a1286a1455653452fcfb45c6dd3 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
// This file contains tests for situations, which do not normally
// appear in the code, but must nevertheless be handled correctly.

%module doxygen_misc_constructs

%warnfilter(SWIGWARN_DOXYGEN_UNKNOWN_COMMAND) backslashB;

%inline %{

    // Tag '@endink' must be recognized even if it is not
    // followed by whitespace.

    /** Tag endlink must be recognized also when followed by nonspace character.
     *
     * @link Connection::getId() @endlink<br> */

    char g_counter;


    /**
      Tag endlink must be recognized also when it is the last token
      in the comment.

      @link Connection::getId() @endlink<br>
      @link debugIdeTraceProfilerCoverageSample.py Python example. @endlink
     */
    int g_zipCode;


    // Parameter 'isReportSize' must appear in comment of the overload, which
    // has it. Empty line before link must be preserved.
    /**
     * Returns address of file line.
     *
     * @param fileName name of the file, where the source line is located
     * @param line line number
     * @param isGetSize if set, for every object location both address and size are returned
     *
     * @link Connection::getId() @endlink<br>
     */
    void getAddress(int &fileName,
                    int line,
                    bool isGetSize = false) {}

    // The first comment must be ignored.
    /**
     * \defgroup icFacade isystem.connect Facade
     *
     * This page shows the core classes, which can be used to control
     * all aspects of winIDEA, for example: debugging, analyzers, IO module, ...
     */

    /**
     * This class contains information for connection to winIDEA. Its methods
     * return reference to self, so we can use it like this:
     * <pre>
     * CConnectionConfig config = new CConnectionConfig();
     * config.discoveryPort(5534).dllPath("C:\\myWinIDEA\\connect.dll").id("main");
     * </pre>
     *
     * All parameters are optional. Set only what is required, default values are
     * used for unspecified parameters.
     * <p>
     *
     * @link advancedWinIDEALaunching.py Python example.@endlink<br>
     */
    class CConnectionConfig
    {
    };

    // Text after '\c' must be kept unchanged in Python.
    /**
     * Determines how long the \c isystem.connect should wait for running
     * instances to respond. Only one of \c lfWaitXXX flags from IConnect::ELaunchFlags
     * may be specified.
     */
    int waitTime(long waitTime) {return 33;}


    // Line with tag \ingroup must not appear in translated comment:
    /** \ingroup icFacade
     *
     * This function returns connection id.
     */
    int getConnection() {return 3;}

    // the following must produce no comment in wrapper
    /*******************************************************************/
    char getFirstLetter() {return 'a';}


    /**
     * Class description.
     */
    class ClassWithNestedEnum {
    public:
        /**
         * Enum description.
         */
        typedef enum {ONE,  ///< desc of one
                      TWO,  ///< desc of two
                      THREE ///< desc of three
        } ENested;

    };

    /// @return This is a bad place for this tag, but it should be ignored.
    struct StructWithReturnComment {};

    /**
        An example of a list in a documentation comment.

            - The first item of the list.
            - The second list item, on
              several indented lines,
              showing that the indentation
              is preserved.
            - And the final list item after it.

        And this is not a list item any more.
     */
    void showList() { }

    #include "doxygen_misc_constructs.h"

%}
    %include "doxygen_misc_constructs.h"