RTF filter complies to MS RTF 1.5 specification. (works well with 1.8 as well).
[beagle.git] / BeagleClient / DBusisms.cs
blob3e10d63ec52fb65ad438126feca757abe39adea0
1 //
2 // SearchWindow.cs
3 //
4 // Copyright (C) 2004 Novell, Inc.
5 //
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to deal
10 // in the Software without restriction, including without limitation the rights
11 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 // copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
15 // The above copyright notice and this permission notice shall be included in all
16 // copies or substantial portions of the Software.
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24 // SOFTWARE.
27 using System;
28 using System.Runtime.InteropServices;
29 using DBus;
31 namespace Beagle
33 public class DBusisms {
35 static public readonly string ServiceName = "com.novell.Beagle";
36 static public readonly string FactoryPath = "/com/novell/Beagle/Factory";
37 static public readonly string RemoteControlPath = "/com/novell/Beagle/RemoteControl";
38 static public readonly string WebHistoryIndexerPath = "/com/novell/Beagle/WebHistoryIndexer";
39 static public readonly string FileSystemIndexerPath = "/com/novell/Beagle/FileSystemIndexer";
41 public delegate void Callback ();
42 static public event Callback BeagleUpAgain;
43 static public event Callback BeagleDown;
46 static Connection connection = null;
47 static Service service = null;
48 static BusDriver driver = null;
50 [DllImport ("dbus-glib-1")]
51 private extern static void dbus_g_thread_init ();
53 internal static Connection Connection {
54 get {
55 if (connection == null) {
56 dbus_g_thread_init ();
57 connection = Bus.GetSessionBus ();
59 return connection;
63 internal static Service Service {
64 get {
65 if (service == null) {
66 Driver.ServiceOwnerChanged += OnServiceOwnerChanged;
67 service = DBus.Service.Get (Connection, ServiceName);
69 return service;
73 internal static BusDriver Driver {
74 get {
75 if (driver == null) {
76 driver = BusDriver.New (Connection);
78 return driver;
82 internal static void OnServiceOwnerChanged (string serviceName,
83 string oldOwner,
84 string newOwner)
86 if (serviceName == ServiceName) {
88 if (oldOwner == "") { // New service added
89 //System.Console.WriteLine ("BeagleDaemon up");
91 if (BeagleUpAgain != null)
92 BeagleUpAgain ();
94 } else if (newOwner == "") { // Existing service deleted
95 //System.Console.WriteLine ("BeagleDaemon down");
97 service = null;
99 if (BeagleDown != null)
100 BeagleDown ();