Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Aug 22nd, 2010 | Syntax: C# | Size: 1.82 KB | Hits: 178 | Expires: Never
This paste has a previous version, view the difference. Copy text to clipboard
  1. using System;
  2. using NDesk.DBus;
  3. using Gdk;
  4. using System.Collections.Generic;
  5. using Mono.Posix;
  6.  
  7. [NDesk.DBus.Interface ("org.gnome.zeitgeist.Log")]
  8. interface ILogger
  9. {
  10.         string[] FindRelatedUris(long[] timerange, ZGEvent[] events, ZGEvent[] results, int storage, int numEvents, int resultType);
  11. }
  12. struct ZGEvent
  13. {
  14.         public string[] metadata { get; set; }
  15.         public string[][] subjects { get; set; }
  16.         public byte[] payload { get; set; }
  17.        
  18.         public ZGEvent(string[] metadata, string[][] subjects, byte[] payload)
  19.         {
  20.                 this.metadata = metadata;
  21.                 this.subjects = subjects;
  22.                 this.payload = payload;
  23.         }
  24. }      
  25.  
  26. public class MyProgram
  27. {
  28.         public MyProgram (string[] args)
  29.         {
  30.                 BusG.Init();
  31.                 Test();
  32.         }
  33.        
  34.         private static ILogger zeitgeist_proxy =
  35.                         Bus.Session.GetObject<ILogger>("org.gnome.zeitgeist.Engine",
  36.                                                        new ObjectPath("/org/gnome/zeitgeist/log/activity"));
  37.                
  38.         public static void Main (string[] args)
  39.         {
  40.                 new MyProgram (args);
  41.         }
  42.        
  43.         private void Test()
  44.         {
  45.                 //Make sure you change the uri to something logged by zeitgeist
  46.                 string uri = "file:///home/seif/Desktop/test.py";
  47.                
  48.                 Console.WriteLine("*** "+uri);
  49.                 ZGEvent e = new ZGEvent();
  50.                 e.metadata = new string[5];
  51.                 e.metadata[0] = "";
  52.                 e.metadata[1] = "";
  53.                 e.metadata[2] = "";
  54.                 e.metadata[3] = "";
  55.                 e.metadata[4] = "";
  56.                 string[] subject = new string[7];
  57.                 subject[0] = uri;
  58.                 subject[1] = "";
  59.                 subject[2] = "";  
  60.                 subject[3] = "";
  61.                 subject[4] = "";
  62.                 subject[5] = "";
  63.                 subject[6] = "";
  64.                 e.subjects = new string[][] { subject };
  65.                 e.payload = new byte[0];
  66.                
  67.                 ZGEvent[] events = new ZGEvent[]{e};
  68.                 long[] timestamps = new long[]{0,9999999999999};
  69.                 string[] results = zeitgeist_proxy.FindRelatedUris(timestamps, events, new ZGEvent[0], 2, 10, 0);
  70.                 Console.WriteLine(results);
  71.         }
  72.  
  73. }