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
|
/*
* Copyright (c) 2013 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.eclipse.cdt.qt.core.index;
import java.util.Collection;
/**
* Qt provides macros for marking member functions as special. The moc compiler
* recognizes these annotations and generates extra code to implement the special
* behaviour.
*
* This interface is used to represent these methods in the Qt index. It is used
* for member functions that have been marked as signals, slots, and invokables.
*/
public interface IQMethod extends IQElement, IQObject.IMember {
/**
* The kind of Qt annotation that has been applied to this member function.
* Signals and slots are implicitly invokable, if a single member function
* has been tagged with both signal/slot and invokable, the kind will be
* Signal or Slot.
*/
public static enum Kind {
Unspecified,
Invokable,
Signal,
Slot;
}
/**
* The kind of Qt annotation that has been applied to this member function. Signals and
* slots are implicitly invokable, if a single member function has been tagged with both
* signal and invokable, the kind will be Signal (and likewise for Slot).
*/
public Kind getKind();
/**
* Returns the function name of the method.
*/
public String getName();
/**
* Returns the normalized C++ function signatures of the receiver method. There is
* more than one signature only when at least one parameter has a default value.
* E.g., for
* #signal1 in:
* <pre>
* class T : public QObject
* {
* Q_OBJECT
* Q_SIGNAL void signal1( int = 5 );
* };
* </pre>
* This would return "{ signal1(int), signal1() }".
*/
public Collection<String> getSignatures();
/**
* Return the revision if this method was tagged with the Q_REVISION macro and null
* otherwise. The return type is Long in order to accommodate unsigned C++ 32-bit
* values.
*/
public Long getRevision();
}
|