25#ifndef DBUS_HANDLER_H__
26#define DBUS_HANDLER_H__
33#include "model/instance_check.h"
35#include "observable_evtvar.h"
38static const char*
const kDbusName =
"org.opencpn.OpenCPN";
41static const char*
const kDbusObject =
"/org/opencpn/OpenCPN";
44static const char*
const kDbusInterface =
"opencpn.desktop";
47static const gchar introspection_xml[] = R
"""(
49 <interface name='opencpn.desktop'>
50 <annotation name='org.gtk.GDBus.Annotation' value='OnInterface'/>
51 <annotation name='org.gtk.GDBus.Annotation' value='AlsoOnInterface'/>
53 <annotation name='org.gtk.GDBus.Annotation' value='OnMethod'/>
54 <arg type='u' name='level' direction='out'/>
55 <arg type='b' name='stat' direction='out'/>
58 <annotation name='org.gtk.GDBus.Annotation' value='OnMethod'/>
59 <!-- In the GUI case, raise application to top. -->
62 <annotation name='org.gtk.GDBus.Annotation' value='OnMethod'/>
63 <arg type='s' name='level' direction='in'/>
64 <arg type='b' name='stat' direction='out'/>
66 <method name='GetRestEndpoint'>
67 <annotation name='org.gtk.GDBus.Annotation' value='OnMethod'/>
68 <arg type='s' name='endpoint' direction='out'/>
71 <annotation name='org.gtk.GDBus.Annotation' value='OnMethod'/>
78static void HandleMethodCall(GDBusConnection* connection,
const gchar* sender,
79 const gchar* object_path,
80 const gchar* interface_name,
81 const gchar* method_name, GVariant* parameters,
82 GDBusMethodInvocation* invocation,
128 void SetMainInstance(
bool value) { m_is_main_instance = value; }
137 bool m_is_main_instance;
Basic interface to low-level DBus library.
GDBusNodeInfo * introspection_data
Callback context.
static void Disconnect()
Clear current singleton instance and disconnect from session bus.
void WaitUntilValid() override
Wait until ready.
bool IsMainInstance()
Check if this instance is the only one.
Common interface for all instance checkers.
Base interface for local server command handling.
The local API has a server side handling commands and a client part issuing commands.