summaryrefslogtreecommitdiff
path: root/libvaladoc/api/signal.vala
diff options
context:
space:
mode:
Diffstat (limited to 'libvaladoc/api/signal.vala')
-rw-r--r--libvaladoc/api/signal.vala146
1 files changed, 146 insertions, 0 deletions
diff --git a/libvaladoc/api/signal.vala b/libvaladoc/api/signal.vala
new file mode 100644
index 000000000..4bbbb2320
--- /dev/null
+++ b/libvaladoc/api/signal.vala
@@ -0,0 +1,146 @@
+/* signal.vala
+ *
+ * Copyright (C) 2008-2011 Florian Brosch
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Author:
+ * Florian Brosch <flo.brosch@gmail.com>
+ */
+
+using Gee;
+using Valadoc.Content;
+
+
+/**
+ * Represents an signal.
+ */
+public class Valadoc.Api.Signal : Member, Callable {
+ private string? default_impl_cname;
+ private string? dbus_name;
+ private string? cname;
+
+
+ /**
+ * {@inheritDoc}
+ */
+ internal string? implicit_array_length_cparameter_name {
+ get;
+ set;
+ }
+
+
+ public Signal (Node parent, SourceFile file, string name, SymbolAccessibility accessibility,
+ SourceComment? comment, string? cname, string? default_impl_cname, string? dbus_name, bool is_dbus_visible,
+ bool is_virtual, void* data)
+ {
+ base (parent, file, name, accessibility, comment, data);
+
+ this.default_impl_cname = default_impl_cname;
+ this.dbus_name = dbus_name;
+ this.cname = cname;
+
+ this.is_dbus_visible = is_dbus_visible;
+ this.is_virtual = is_virtual;
+ }
+
+ /**
+ * Returns the name of this signal as it is used in C.
+ */
+ public string? get_cname () {
+ return cname;
+ }
+
+ public string? get_default_impl_cname () {
+ return default_impl_cname;
+ }
+
+ /**
+ * Returns the dbus-name.
+ */
+ public string get_dbus_name () {
+ return dbus_name;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public TypeReference? return_type {
+ set;
+ get;
+ }
+
+ /**
+ * Specifies whether this signal is virtual
+ */
+ public bool is_virtual {
+ private set;
+ get;
+ }
+
+ /**
+ * Specifies whether this signal is visible for dbus
+ */
+ public bool is_dbus_visible {
+ private set;
+ get;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected override Inline build_signature () {
+ var signature = new SignatureBuilder ();
+
+ signature.append_keyword (accessibility.to_string ());
+ if (is_virtual) {
+ signature.append_keyword ("virtual");
+ }
+
+ signature.append_keyword ("signal");
+
+ signature.append_content (return_type.signature);
+ signature.append_symbol (this);
+ signature.append ("(");
+
+ bool first = true;
+ foreach (Node param in get_children_by_type (NodeType.FORMAL_PARAMETER, false)) {
+ if (!first) {
+ signature.append (",", false);
+ }
+ signature.append_content (param.signature, !first);
+ first = false;
+ }
+
+ signature.append (")", false);
+
+ return signature.get ();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public override NodeType node_type {
+ get { return NodeType.SIGNAL; }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public override void accept (Visitor visitor) {
+ visitor.visit_signal (this);
+ }
+}
+